asp.net gridview复选框选择
需要一些帮助来解决这个问题.
我有一个gridview,在gridview里面我有一个复选框,点击复选框后,我正在做一个回发事件,并尝试仅在数据库上更新这个特定的行. 这是我的gridview复选框代码.看到OnCheckedChanged. <asp:TemplateField HeaderText="Sample"> <ItemTemplate> <asp:CheckBox runat="server" ID="chkSample" Checked='<%# Bind("Sample") %>' OnCheckedChanged="UpdateSupplyLed" AutoPostBack="True"> </asp:CheckBox> </ItemTemplate> </asp:TemplateField> 码: protected void UpdateSupplyLed(object sender,EventArgs e) { foreach (GridViewRow di in SamplingGridView.Rows) { CheckBox chkBx = (CheckBox)di.FindControl("chkSample"); if (chkBx != null && chkBx.Checked) { //update database logic here. } } } 上面的代码工作正常,但它给我的所有复选框都被检查,而不管我刚检查的那个.我不想要所有这些. 如何才能获得刚刚检查过的唯一一行值.某些行可能已经被检查过,因为这些记录的状态为true,我不想更新这些记录. 我想我的问题是对的! 更新:答案是: protected void UpdateSupplyLed(object sender,EventArgs e) { CheckBox chkSampleStatus = sender as CheckBox; bool sample = chkSampleStatus.Checked; GridViewRow row = chkSampleStatus.NamingContainer as GridViewRow; TextBox txtId = row.FindControl("Id") as TextBox; int id = Int32.Parse(txtId.Text); } 解决方法
试试这个:
CheckBox chkBx = sender as CheckBox; 而不是迭代所有行. 我自己没有以这种方式在GridView中使用CheckBox.通常我会使用GridView的OnRowCommand事件,并使用RowIndex或CommandArgument值来更新数据库. 考虑一下OnRowcommand对于CheckBox来说可能很棘手,一个更好的解决方案可能是坚持使用复选框的CheckChanged事件并使用控件NamingContainer导航到GridViewRow服务器端.就像是: GridViewRow row = chkBx.NamingContainer as GridViewRow; 我假设去了CheckBox => Cell =>如果您使用Google ASP.NET NamingContainer,您将获得更多细节. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 在ASP.NET应用程序中托管的WCF服务中使用Autofac作为DI
- asp.net-mvc-3 – Asp.Net MVC 3 – @ Html.Action不会呈现
- asp.net-mvc – MissingMethodException:“此对象没有无参
- asp.net-mvc – 失败的ASP.NET MVC路由.这是一个错误还是角
- asp-classic – 通过object标签和Server.CreateObject声明连
- asp.net – 计算代码后面的代码行数和aspx文件的工具?
- asp.net-mvc – ASP.NET MVC – Respository / Service / C
- asp.net – dropdownlist在页面重新加载时不会重置
- asp.net-mvc – 授权标签如何工作? – Asp.net Mvc
- asp.net – 引用不稳定的DLL
- 从ASP.NET服务器控件动态添加CSS文件
- asp.net-mvc – 如何将存储库传递给ASP.NET MVC中
- asp.net – SCRIPT5022:Sys.WebForms.PageReque
- asp.net – 使用“dnu publish”排除发布项目上的
- asp.net-mvc – 在MVC控制器中复制代码
- asp.net-mvc – 如何在我的项目中实现强大的每个
- asp.net – 如何在所选项目上启用工作流状态“写
- RavenDB ASP.NET会话提供程序?
- ASP.NET异步任务 – 如何使用Page.RegisterAsync
- asp.net-mvc – 适用于典型n层架构的Web API在哪