将验证器添加到gridview文本框,在绑定字段的编辑模式下创建

时间:2009-10-06 08:30:59

标签: asp.net validation

看看这个示例代码:(问题如下)

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
    AllowSorting="True" DataSourceID="SqlDataSource2" 
    AutoGenerateColumns="False" onrowupdated="GridView1_RowUpdated" 
         DataKeyNames="Product_Id">
    <Columns>
    <asp:ImageField DataImageUrlField="Image_Name" HeaderText="Image_Name" 
           ReadOnly="True" >
    <ItemStyle Width="50px" Height="50px"  Wrap="true"/>
    </asp:ImageField>       
    <asp:BoundField DataField="Product_Id" HeaderText="Product_Id" 
           InsertVisible="False" ReadOnly="True" SortExpression="Product_Id">
    </asp:BoundField>
        <asp:BoundField DataField="Product_Name" HeaderText="Product_Name" 
            SortExpression="Product_Name" />
        <asp:BoundField DataField="Category_Name" HeaderText="Category_Name" 
            SortExpression="Category_Name" ReadOnly="true" />
        <asp:BoundField DataField="Description" HeaderText="Description" 
            SortExpression="Description" />
        <asp:BoundField DataField="Size" HeaderText="Size" 
                 SortExpression="Size" />
        <asp:BoundField DataField="Price" HeaderText="Price" 
                 SortExpression="Price" />
        <asp:CommandField ShowEditButton="True" />
        <asp:CommandField ShowDeleteButton="True" />
    </Columns>
</asp:GridView>

假设我初始化一个SqlDataSource,添加一个参数等等。

问题是,当用户点击编辑时,我们会得到一个文本框来编辑colnumn值。 我想在执行更新之前验证用户输入的数据和新的数据 数据传播回服务器。怎么样?

10倍!

2 个答案:

答案 0 :(得分:2)

您需要convert the BoundField into a TemplateField。然后,您可以将验证器添加到实际的TextBox控件。

答案 1 :(得分:1)

选项1:

但是根据UNKNOWN的回答,微软推荐的相同......正如他所说的那样。

参考:http://msdn.microsoft.com/en-us/library/bb426882.aspx#aspnett19_vldcntredtuics_topic2

选项2:

但是,我们可以做到。

您需要添加验证javascript验证或服务器端验证

控件,当GridView的DataBound事件在运行时发生在特定的

上时

Gridview行的TableCell。

因此,当您单击自定义生成的javascript或验证

的更新按钮时

控件将检查编辑值的验证。

此过程比将boundfield转换为templatefield更加困难

参考:http://www.aspdotnetcodes.com/GridView_Dynamic_Validation.aspx

选项3:

您可以对值进行服务器端验证,而不是客户端验证:

参考:http://msdn.microsoft.com/en-us/library/bb332383.aspx