看看这个示例代码:(问题如下)
<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倍!
答案 0 :(得分:2)
您需要convert the BoundField into a TemplateField。然后,您可以将验证器添加到实际的TextBox控件。
答案 1 :(得分:1)
但是根据UNKNOWN的回答,微软推荐的相同......正如他所说的那样。
参考:http://msdn.microsoft.com/en-us/library/bb426882.aspx#aspnett19_vldcntredtuics_topic2
但是,我们可以做到。
您需要添加验证javascript验证或服务器端验证
控件,当GridView的DataBound事件在运行时发生在特定的
上时Gridview行的TableCell。
因此,当您单击自定义生成的javascript或验证
的更新按钮时控件将检查编辑值的验证。
此过程比将boundfield转换为templatefield更加困难
参考:http://www.aspdotnetcodes.com/GridView_Dynamic_Validation.aspx
您可以对值进行服务器端验证,而不是客户端验证: