最近试着看了一下Asp.Net,以前开发过一些Web的系统,但是后来一直没在搞Web的了,所以Web方面的知识都忘记的差不多了,现在遇到一些问题就记下来,以便日后查看。在GridView里面获取隐藏列的值,有时候一些Key字段不想让用户看见,但是后台又需要使用这个关键字段去做一些操作,如果使用普通的绑定方式将这个字段绑定到GridView上面的话,那么在后台取值就一直是空的,网上很多方法,但是觉得还是通过模板来实现比较方便一点,不需要涉及到那几个事件,比如RowCommand以及RowDataBound等等,就算是在按钮事件里面也可以获取,前台代码:
普通的绑定代码:
<asp:BoundField DataField="FunctionName" HeaderText="FunctionName"> <HeaderStyle Height="20px" /> <ItemStyle HorizontalAlign="Center" Width="150px" /> </asp:BoundField>
使用模板绑定:
<asp:TemplateField HeaderText="FunctionID" Visible="False"> <ItemTemplate> <asp:Label ID="lblFunctionID" runat="server" Text='<%# Bind("FunctionID") %>'></asp:Label> </ItemTemplate> </asp:TemplateField>
参数“FunctionID”就是需要绑定那个字段,这个字段一定要是从数据库查询出来的List里面已经存在的。
后台获取隐藏列的值:
protected void imgbtnEdit_Click(object sender, ImageClickEventArgs e) { foreach (GridViewRow row in this.dgvFunctionList.Rows) { if (row.RowType == DataControlRowType.DataRow) { RadioButton rb = (RadioButton)row.FindControl("rdbCheck"); if (rb.Checked) { SelectFunctionID = ((Label)row.Cells[1].FindControl("lblFunctionID")).Text.ToString(); ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "script", "<script>alert('" + SelectFunctionID + "')</script>", false); } } } }
时间: 2024-10-26 18:54:18