This is a migrated thread and some comments may be shown as answers.

Validating Items in grid

4 Answers 112 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Venkatesh
Top achievements
Rank 1
Venkatesh asked on 04 Jan 2013, 12:42 PM
HI,
I have a rad grid. I would like to do the following validations.
1) When the user changes the dropdown value, i want to clear the other row items.
2) when the user does not input any data in the textbox (txtTestId)and tries to insert/edit, i want to provide validation.

Below is the UI of the radgrid:
<telerik:RadGrid ID="radgrid1" runat="server" OnDeleteCommand="radgrid1_DeleteCommand"
                                    OnInsertCommand="radgrid1_InsertCommand" OnUpdateCommand="radgrid1_UpdateCommand"
                                    OnNeedDataSource="radgrid1_NeedDataSource" OnPreRender="radgrid1_PreRender"
                                    CellSpacing="0" GridLines="None" ShowStatusBar="True" 
                                    onitemdatabound="radgrid1_ItemDataBound" 
                                    onitemcommand="radgrid1_ItemCommand">
                                      
<MasterTableView DataKeyNames="TestId" AutoGenerateColumns="false" EditMode="InPlace"
                                        CommandItemSettings-ShowRefreshButton="false" CommandItemDisplay="TopAndBottom"
                                        CommandItemSettings-AddNewRecordText="Add New">
                                        <Columns>
                                            <telerik:GridEditCommandColumn ButtonType="ImageButton">
                                            </telerik:GridEditCommandColumn>
                                            <telerik:GridButtonColumn ConfirmText="Delete?" ConfirmDialogType="RadWindow"
                                                ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" ConfirmDialogHeight="100px"
                                                ConfirmDialogWidth="220px">
                                            </telerik:GridButtonColumn>
  
                                            <telerik:GridTemplateColumn HeaderText="Enter Id" DataField="TestName"
                                                UniqueName="TestName" Visible="true">
                                                <ItemTemplate>
                                                    <asp:TextBox ID="txtTestName" runat="server" ReadOnly="true" Text='<%# Eval("TestName") %>' />
                                                    <asp:TextBox ID="txtTestId" ReadOnly="true" runat="server" Text='<%# Eval("TestId") %>'
                                                        Width="100px" />
                                                </ItemTemplate>
  
                                                <InsertItemTemplate>
                                                    <asp:DropDownList ID="ddlTestApp" runat="server">
                                                        <asp:ListItem Text="Java" Value="Java"></asp:ListItem>
                                                        <asp:ListItem Text="UIDesign" Value="UIDesign"></asp:ListItem>
                                                    </asp:DropDownList>
                                                    <asp:TextBox ID="txtTestId" runat="server" Width="100px"></asp:TextBox>
                                                    <asp:Button ID="btnInsertFetchData" runat="server" Text="Fetch Details" OnClick="btnInsertFetchData_Click" />
                                                </InsertItemTemplate>
  
                                                <EditItemTemplate>
                                                    <asp:DropDownList ID="ddlTestApp" runat="server" >
                                                       <asp:ListItem Text="Java" Value="Java"></asp:ListItem>
                                                        <asp:ListItem Text="UIDesign" Value="UIDesign"></asp:ListItem>
                                                    </asp:DropDownList>
  
                                                    <asp:TextBox ID="txtNetworkId" runat="server" Text='<%# Eval("TestId") %>'
                                                        Width="100px"></asp:TextBox>
                                                    <asp:Button ID="btnUpdateFetchData" runat="server" Text="Fetch Details" OnClick="btnUpdateFetchData_Click" />
                                                </EditItemTemplate>
                                            </telerik:GridTemplateColumn>
  
                                            <telerik:GridTemplateColumn DataField="FirstName" UniqueName="FirstName"
                                                Visible="true" HeaderText="First Name">
                                                <InsertItemTemplate>
                                                    <telerik:RadTextBox ID="RadtxtFirstName" runat="server" Text="" Width="100px">
                                                    </telerik:RadTextBox>
                                                </InsertItemTemplate>
                                                <EditItemTemplate>
                                                    <telerik:RadTextBox ID="RadtxtFirstName" runat="server" Text='<%# Eval("FirstName") %>'
                                                        Width="100px">
                                                    </telerik:RadTextBox>
                                                </EditItemTemplate>
                                                <ItemTemplate>
                                                    <telerik:RadTextBox ID="RadtxtFirstName" ReadOnly="true" runat="server" Text='<%# Eval("FirstName") %>'
                                                        Width="100px" />
                                                </ItemTemplate>
                                            </telerik:GridTemplateColumn>
    </Columns>
                                    </MasterTableView>
                                    <ClientSettings EnableRowHoverStyle="true">
                                    </ClientSettings>
                                </telerik:RadGrid>

How to achieve this?
Thanks

4 Answers, 1 is accepted

Sort by
0
Elliott
Top achievements
Rank 2
answered on 04 Jan 2013, 04:35 PM
I would use a UserControl for the Insert/Edit
then on the SelectedIndexChanged event of the dropdown you can easily clear out all the textboxes
makes adding validators easier, too
0
Shinu
Top achievements
Rank 2
answered on 07 Jan 2013, 04:52 AM
Hi,

Try the following code to achieve your scenario.
aspx:
<telerik:GridTemplateColumn>
  <InsertItemTemplate>
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtTestId" ForeColor="Red" ErrorMessage="*"></asp:RequiredFieldValidator>
    <asp:TextBox ID="txtTestId" runat="server"></asp:TextBox>
  </InsertItemTemplate>
</telerik:GridTemplateColumn>
c#:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
        DropDownList ddl = (DropDownList)sender;
        GridEditFormInsertItem item = (GridEditFormInsertItem)ddl.NamingContainer;
        TextBox txt = (TextBox)item.FindControl("txtTestId");
        txt.Text = string.Empty;
}

Thanks,
Shinu.
0
Venkatesh
Top achievements
Rank 1
answered on 08 Jan 2013, 07:55 AM

Hi,
For the selectedIndex event, how will it work for insertitem and edititem. My editmode is "InPlace"

Below is the UI:

<InsertItemTemplate
                                                    <asp:DropDownList ID="ddlTestApp" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlTestApp_SelectedIndexChanged"
                                                        <asp:ListItem Text="Java" Value="Java"></asp:ListItem
                                                        <asp:ListItem Text="UIDesign" Value="UIDesign"></asp:ListItem
                                                    </asp:DropDownList
                                                    <asp:TextBox ID="txtTestId" runat="server" Width="100px"></asp:TextBox
                                                    <asp:Button ID="btnInsertFetchData" runat="server" Text="Fetch Details" OnClick="btnInsertFetchData_Click" /> 
                                                </InsertItemTemplate
    
                                                <EditItemTemplate
                                                    <asp:DropDownList ID="ddlTestApp" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlTestApp_SelectedIndexChanged">  
                                                       <asp:ListItem Text="Java" Value="Java"></asp:ListItem
                                                        <asp:ListItem Text="UIDesign" Value="UIDesign"></asp:ListItem
                                                    </asp:DropDownList
    
                                                    <asp:TextBox ID="txtTestId" runat="server" Text='<%# Eval("TestId") %>' 
                                                        Width="100px"></asp:TextBox
                                                    <asp:Button ID="btnUpdateFetchData" runat="server" Text="Fetch Details" OnClick="btnUpdateFetchData_Click" /> 
                                                </EditItemTemplate

In the cs code, I have the below:
protected void ddlTestApp_SelectedIndexChanged(object sender, EventArgs e)
       {
           DropDownList ddl = (DropDownList)sender;
           GridDataInsertItem item = (GridDataInsertItem)ddl.NamingContainer;
           TextBox txt = (TextBox)item.FindControl("txtTestId");
           txt.Text = string.Empty;
       }

The above cs code is working for Insert, but not working in Edit. How to fix this?
Thanks
0
Shinu
Top achievements
Rank 2
answered on 08 Jan 2013, 08:56 AM
Hi,

The controls in EditItemTemplate will be rendered in both insert and edit mode. Here is the sample code that I tried which worked as expected.
aspx:
<telerik:GridTemplateColumn>
  <EditItemTemplate>
     <asp:DropDownList ID="ddlTestApp" runat="server" AutoPostBack="true"OnSelectedIndexChanged="ddlTestApp_SelectedIndexChanged">
 <asp:ListItem Text="Java" Value="Java"></asp:ListItem>
 <asp:ListItem Text="UIDesign" Value="UIDesign"></asp:ListItem>
</asp:DropDownList>        
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtTestId"ForeColor="Red" ErrorMessage="*"></asp:RequiredFieldValidator>
                            <asp:TextBox ID="txtTestId"runat="server"></asp:TextBox>
 </EditItemTemplate>
</telerik:GridTemplateColumn>
C#:
protected void ddlTestApp_SelectedIndexChanged(object sender, EventArgs e)
{
 DropDownList ddl = (DropDownList)sender;
    GridEditableItem item = (GridEditableItem)ddl.NamingContainer;
    TextBox txt = (TextBox)item.FindControl("txtTestId");
    txt.Text = string.Empty;
}

Thanks,
Shinu.
Tags
Grid
Asked by
Venkatesh
Top achievements
Rank 1
Answers by
Elliott
Top achievements
Rank 2
Shinu
Top achievements
Rank 2
Venkatesh
Top achievements
Rank 1
Share this question
or