Hello Telerik-Team,
I have to hide some controls in the edit mode but show them in the insert mode:
How can I manage this?
I hav tried it with:
but then the 2 controls are hidden in the edit und in the insert mode.
Can anybody help?
Regards Christian
I have to hide some controls in the edit mode but show them in the insert mode:
| <telerik:GridTemplateColumn DataField="Kennwort" EditFormHeaderTextFormat="Kennwort*:" HeaderText="" HeaderStyle-Width="0" |
| Visible="false" UniqueName="Kennwort"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbKennwort" Width="300" MaxLength="30" Text='<%# Bind("Kennwort") %>'></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator4" ControlToValidate="tbKennwort" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Kennwort" EditFormHeaderTextFormat="Kennwort-Wiederholung*:" HeaderText="" HeaderStyle-Width="0" |
| Visible="false" UniqueName="Kennwort2"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbKennwort2" Width="300" MaxLength="30" ></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator5" ControlToValidate="tbKennwort2" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
How can I manage this?
I hav tried it with:
| protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) |
| { |
| if (e.Item.IsInEditMode == true) |
| { |
| GridEditableItem editItem = e.Item as GridEditableItem; |
| TextBox tbKennwort = editItem["Kennwort"].FindControl("tbKennwort") as TextBox; |
| tbKennwort.Visible = false; |
| TextBox tbKennwort2 = editItem["Kennwort2"].FindControl("tbKennwort2") as TextBox; |
| tbKennwort2.Visible = false; |
| } |
| } |
but then the 2 controls are hidden in the edit und in the insert mode.
Can anybody help?
Regards Christian
5 Answers, 1 is accepted
0
Princy
Top achievements
Rank 2
answered on 10 Feb 2010, 12:14 PM
Hello Christian,
Try the following code snippet in order to show/hide the columns based on edit/insert modes.
CS:
Thanks,
Princy.
Try the following code snippet in order to show/hide the columns based on edit/insert modes.
CS:
| protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) |
| { |
| if (e.CommandName == RadGrid.EditCommandName) |
| { |
| RadGrid1.MasterTableView.GetColumn("Kennwort").Visible = false; |
| RadGrid1.MasterTableView.GetColumn("Kennwort2").Visible = false; |
| } |
| else if(e.CommandName == RadGrid.InitInsertCommandName) |
| { |
| RadGrid1.MasterTableView.GetColumn("Kennwort").Visible = true; |
| RadGrid1.MasterTableView.GetColumn("Kennwort2").Visible = true; |
| } |
| } |
Thanks,
Princy.
0
Christian
Top achievements
Rank 1
answered on 10 Feb 2010, 01:58 PM
Hi Princy,
thanks for your code snippet.
It seems not to work.
If I debug the method RadGrid1_Command, then the visibility of the columns Kennwort and kennwort2 will be set zu false. But nevertheless the edit fields will be shown.
Here is the code:
Any idea?
regards
Christian
thanks for your code snippet.
It seems not to work.
If I debug the method RadGrid1_Command, then the visibility of the columns Kennwort and kennwort2 will be set zu false. But nevertheless the edit fields will be shown.
Here is the code:
| <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="~/Personenverwaltung/Personen.ascx.cs" Inherits="WebSiteKunde.Personenverwaltung.Personen" %> |
| <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %> |
| <asp:UpdatePanel ID="UpdatePanel5" runat="server"> |
| <ContentTemplate> |
| <telerik:RadGrid |
| DataSourceID="odsPersonen" |
| ID="RadGrid1" |
| runat="server" |
| EnableViewState="true" |
| AllowAutomaticUpdates="True" |
| AllowAutomaticInserts="true" |
| AllowAutomaticDeletes="true" |
| AllowPaging="true" |
| PageSize="10" |
| AllowSorting="true" |
| SortingSettings-SortToolTip="Klicken Sie hier um die Spalte zu sortieren" |
| PagerStyle-FirstPageToolTip="zur ersten Seite" |
| PagerStyle-NextPageToolTip="nächste Seite" |
| PagerStyle-LastPageToolTip="zur letzten Seite" |
| PagerStyle-PrevPageToolTip="vorherige Seite" |
| PagerStyle-PagerTextFormat="Change page: {4} Seite {0} von {1}, Datensatz {2} bis {3} von {5}" |
| OnItemCommand="RadGrid1_Command" |
| > |
| <MasterTableView |
| DataKeyNames="PersonID" |
| AllowNaturalSort="false" |
| EditMode="EditForms" |
| OverrideDataSourceControlSorting="true" |
| CommandItemDisplay="Bottom" |
| CommandItemSettings-AddNewRecordText="Neue Person hinzufügen" |
| AutoGenerateColumns="false" |
| CommandItemSettings-RefreshText="Aktualisieren" |
| > |
| <Columns> |
| <telerik:GridEditCommandColumn ButtonType="ImageButton" EditText="Datensatz bearbeiten" HeaderStyle-Width="20" /> |
| <telerik:GridButtonColumn ConfirmText="Möchten Sie diesen Datensatz löschen?" ConfirmDialogType="Classic" |
| ConfirmTitle="Sicherheitsabfrage" ButtonType="ImageButton" CommandName="Delete" |
| Text="Datensatz löschen" UniqueName="DeleteColumn" HeaderStyle-Width="20"> |
| </telerik:GridButtonColumn> |
| <telerik:GridTemplateColumn DataField="PersonID" EditFormHeaderTextFormat="" HeaderText="PersonID" HeaderStyle-Width="110px" |
| SortExpression="PersonID"> |
| <ItemTemplate> |
| <asp:Label runat="server" ID="lbPersonID" Text='<%# Eval("PersonID") %>'></asp:Label> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbPersonID" Text='<%# Bind("PersonID") %>' Visible="false"></asp:TextBox> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="AccountID" EditFormHeaderTextFormat="" HeaderText="AccountID" HeaderStyle-Width="110px" |
| SortExpression="AccountID"> |
| <ItemTemplate> |
| <asp:Label runat="server" ID="lbAccountID" Text='<%# Eval("AccountID") %>'></asp:Label> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbAccountID" Text='<%# Bind("AccountID") %>' Visible="false"></asp:TextBox> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Vorname" EditFormHeaderTextFormat="Vorname*:" HeaderText="Vorname" HeaderStyle-Width="110px" |
| SortExpression="Vorname"> |
| <ItemTemplate> |
| <asp:Label runat="server" ID="lbVorname" Text='<%# Eval("Vorname") %>'></asp:Label> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbVorname" Width="300" MaxLength="50" Text='<%# Bind("Vorname") %>'></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="tbVorname" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Nachname" EditFormHeaderTextFormat="Nachname*:" HeaderText="Nachname" HeaderStyle-Width="110px" |
| SortExpression="Nachname"> |
| <ItemTemplate> |
| <asp:Label runat="server" ID="lbNachname" Text='<%# Eval("Nachname") %>'></asp:Label> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbNachname" Width="300" MaxLength="50" Text='<%# Bind("Nachname") %>'></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="tbNachname" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Anmeldename" EditFormHeaderTextFormat="Anmeldename*:" HeaderText="Anmeldename" |
| HeaderStyle-Width="150" SortExpression="Anmeldename"> |
| <ItemTemplate> |
| <asp:Label runat="server" ID="lbAnmeldename" Text='<%# Eval("Anmeldename") %>'></asp:Label> |
| </ItemTemplate> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbAnmeldename" Width="300" MaxLength="30" Text='<%# Bind("Anmeldename") %>'></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="tbAnmeldename" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Funktion" EditFormHeaderTextFormat="Funktion:" HeaderText="" HeaderStyle-Width="0" Visible="false"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbFunktion" Width="300" MaxLength="50" Text='<%# Bind("Funktion") %>'></asp:TextBox> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Telefon" EditFormHeaderTextFormat="Telefon:" HeaderText="" HeaderStyle-Width="0" Visible="false"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbTelefon" Width="300" MaxLength="20" Text='<%# Bind("Telefon") %>'></asp:TextBox> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Fax" EditFormHeaderTextFormat="Fax:" HeaderText="" HeaderStyle-Width="0" Visible="false"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbFax" Width="300" MaxLength="30" Text='<%# Bind("Fax") %>'></asp:TextBox> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Email" EditFormHeaderTextFormat="Email:" HeaderText="" HeaderStyle-Width="0" Visible="false"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbEmail" Width="300" MaxLength="50" Text='<%# Bind("Email") %>'></asp:TextBox> |
| <span style='color: Red'> |
| <asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="tbEmail" runat="server" |
| ErrorMessage="*" ValidationGroup="insert" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"> |
| </asp:RegularExpressionValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Kennwort" EditFormHeaderTextFormat="Kennwort*:" HeaderText="" HeaderStyle-Width="0" |
| Visible="false" UniqueName="Kennwort"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbKennwort" Width="300" MaxLength="30" Text='<%# Bind("Kennwort") %>'></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator4" ControlToValidate="tbKennwort" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn DataField="Kennwort" EditFormHeaderTextFormat="Kennwort-Wiederholung*:" HeaderText="" HeaderStyle-Width="0" |
| Visible="false" UniqueName="Kennwort2"> |
| <EditItemTemplate> |
| <asp:TextBox runat="server" ID="tbKennwort2" Width="300" MaxLength="30" ></asp:TextBox> |
| <span style="color: Red"> |
| <asp:RequiredFieldValidator ID="RequiredFieldValidator5" ControlToValidate="tbKennwort2" ErrorMessage="*" runat="server"> |
| </asp:RequiredFieldValidator> |
| </span> |
| </EditItemTemplate> |
| </telerik:GridTemplateColumn> |
| </Columns> |
| <EditFormSettings> |
| <EditColumn ButtonType="ImageButton" InsertText="Datensatz einfügen" UpdateText="Datensatz updaten" |
| UniqueName="EditCommandColumn1" CancelText="Abbrechen"> |
| </EditColumn> |
| <FormTableButtonRowStyle HorizontalAlign="left"></FormTableButtonRowStyle> |
| </EditFormSettings> |
| </MasterTableView> |
| </telerik:RadGrid> |
| </ContentTemplate> |
| </asp:UpdatePanel> |
| <asp:ObjectDataSource ID="odsPersonen" runat="server" SelectMethod="GetPersonen" |
| UpdateMethod="UpdateAnsprechpartner" InsertMethod="InsertAnsprechpartner" DeleteMethod="DeleteAnsprechpartner" |
| TypeName="Trost.Adapter.AdpKunde" DataObjectTypeName="Trost.Adapter.DtoPersonen" |
| OldValuesParameterFormatString="original_{0}"> |
| <SelectParameters> |
| <asp:SessionParameter Name="kundeID" SessionField="KundeID" Type="Int32" /> |
| </SelectParameters> |
| </asp:ObjectDataSource> |
| namespace WebSiteKunde |
| { |
| public partial class Personen : System.Web.UI.UserControl |
| { |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| } |
| protected void RadGrid1_Command(object sender, GridCommandEventArgs e) |
| { |
| if (e.CommandName == RadGrid.EditCommandName) |
| { |
| RadGrid1.MasterTableView.GetColumn("Kennwort").Visible = false; |
| RadGrid1.MasterTableView.GetColumn("Kennwort2").Visible = false; |
| } |
| else if (e.CommandName == RadGrid.InitInsertCommandName) |
| { |
| RadGrid1.MasterTableView.GetColumn("Kennwort").Visible = true; |
| RadGrid1.MasterTableView.GetColumn("Kennwort2").Visible = true; |
| } |
| } |
| } |
| } |
Any idea?
regards
Christian
0
Accepted
Princy
Top achievements
Rank 2
answered on 11 Feb 2010, 06:12 AM
Hi,
Try the code snippet below to achieve the desired scenario:
C#
| protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) |
| { |
| RadGrid grid = (source as RadGrid); |
| if (e.CommandName == RadGrid.InitInsertCommandName) |
| { |
| grid.MasterTableView.ClearEditItems(); |
| } |
| if (e.CommandName == RadGrid.EditCommandName) |
| { |
| e.Item.OwnerTableView.IsItemInserted = false; |
| } |
| } |
| protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) |
| { |
| if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.IsItemInserted==false) |
| { |
| GridEditFormItem editFormItem = (GridEditFormItem)e.Item; |
| RadGrid1.MasterTableView.IsItemInserted = false; |
| Button btn = (Button)editFormItem.FindControl("btnSubmit"); |
| btn.Visible = false; |
| } |
| else if (e.Item is GridEditFormInsertItem && e.Item.IsInEditMode && e.Item.OwnerTableView.IsItemInserted == true) |
| { |
| GridEditFormInsertItem editFormInsertItem = (GridEditFormInsertItem )e.Item; |
| RadGrid1.MasterTableView.ClearEditItems(); |
| Label lbl = (Label)editFormInsertItem.FindControl("Label1"); |
| lbl.Visible = false; |
| } |
| } |
Thanks,
Princy
0
Christian
Top achievements
Rank 1
answered on 12 Feb 2010, 08:09 AM
Hi,
your code snippet doesn't help.
I have to hide the fields Kennwort and Kennwort 2 in the edit mode but show them in the insert mode.
With this solution I can hide the textboxes but not the label fields:
Any suggestion?
Thanks
Christian
your code snippet doesn't help.
I have to hide the fields Kennwort and Kennwort 2 in the edit mode but show them in the insert mode.
With this solution I can hide the textboxes but not the label fields:
| protected void RadGrid1_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e) |
| { |
| if (e.Item.IsInEditMode == true) |
| { |
| GridEditableItem editItem = e.Item as GridEditableItem; |
| TextBox tbKennwort = editItem["Kennwort"].FindControl("tbKennwort") as TextBox; |
| tbKennwort.Visible = false; |
| TextBox tbKennwort2 = editItem["Kennwort2"].FindControl("tbKennwort2") as TextBox; |
| tbKennwort2.Visible = false; |
| } |
| } |
Any suggestion?
Thanks
Christian
0
Christian
Top achievements
Rank 1
answered on 12 Feb 2010, 11:13 AM
This works fine for me:
| protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e) |
| { |
| RadGrid grid = (source as RadGrid); |
| if (e.CommandName == RadGrid.InitInsertCommandName) |
| { |
| grid.MasterTableView.ClearEditItems(); |
| RadGrid1.MasterTableView.GetColumn("Kennwort").EditFormHeaderTextFormat = "Kennwort*:"; |
| RadGrid1.MasterTableView.GetColumn("Kennwort2").EditFormHeaderTextFormat = "Kennwort-Wiederholung*:"; |
| } |
| if (e.CommandName == RadGrid.EditCommandName) |
| { |
| e.Item.OwnerTableView.IsItemInserted = false; |
| RadGrid1.MasterTableView.GetColumn("Kennwort").EditFormHeaderTextFormat = ""; |
| RadGrid1.MasterTableView.GetColumn("Kennwort2").EditFormHeaderTextFormat = ""; |
| } |
| } |
| protected void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) |
| { |
| // update form |
| if (e.Item is GridEditFormItem && e.Item.IsInEditMode && e.Item.OwnerTableView.IsItemInserted == false) |
| { |
| GridEditFormItem editFormItem = (GridEditFormItem)e.Item; |
| editFormItem["Kennwort"].Visible = false; |
| editFormItem["Kennwort2"].Visible = false; |
| } |
| // insert |
| else if (e.Item is GridEditFormInsertItem && e.Item.IsInEditMode && e.Item.OwnerTableView.IsItemInserted == true) |
| { |
| RadGrid1.MasterTableView.ClearEditItems(); |
| } |
| } |