2016-01-22 49 views
1

我有一个具有隐藏字段持有ID的网络表格的网格视图,如何从我的更新语句中使用的ID字段捕获数据?这是我的语法看起来像...
HTML
从网格视图更新数据库复选框

<asp:GridView runat="server" ID="gridview2" AutoGenerateColumns="false" > 
<Columns> 
<asp:BoundField DataField="weekofyear" HeaderText="Week" /> 
<asp:BoundField DataField="supportname" HeaderText="Name" /> 
<asp:BoundField DataField="supid" HeaderText="SupportIDName" Visible="false"/> 
<asp:TemplateField> 
    <ItemTemplate> 
     <asp:CheckBox ID="TicketCompleted" runat="server" AutoPostBack="true" OnCheckedChanged="TicketCompletedCompleted_Click" Checked='<%# Convert.ToBoolean(Eval("TicketCompleted")) %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 
</Columns> 

C#

protected void TicketCompleted_Click(object sender, EventArgs e) 
{ 
foreach (GridViewRow row in dgRD.Rows) 
{ 
    if (row.RowType == DataControlRowType.DataRow) 
    { 
     //Below captures the checkbox value (yes or no) 
     CheckBox chk = (CheckBox)row.FindControl("TicketCompleted");      
     if (chk.Checked) 
     { 
      //Here is where I will run the update 
     } 
    } 
} 
+0

改变隐藏字段的ItemTemplate一个并添加标签和绑定你的ID标记;在代码后面找到该标签并获得价值 – techspider

+0

@techspider。我跟着你,直到从ItemTemplate中找到值并使用C#获取值? –

回答

3

HTML:

<asp:BoundField DataField="weekofyear" HeaderText="Week" /> 
<asp:BoundField DataField="supportname" HeaderText="Name" /> 
<%--<asp:BoundField DataField="supid" HeaderText="SupportIDName" Visible="false"/>--%> 
<asp:TemplateField> 
    <ItemTemplate> 
      <asp:Label runat="server" Text='<%#Eval("supid") %>' ID="supid" Visible="false"></asp:Label> 
    </ItemTemplate> 
    <ItemTemplate> 
      <asp:CheckBox ID="TicketCompleted" runat="server" AutoPostBack="true" OnCheckedChanged="TicketCompletedCompleted_Click" Checked='<%# Convert.ToBoolean(Eval("TicketCompleted")) %>' /> 
    </ItemTemplate> 
</asp:TemplateField> 

C#

CheckBox chk = (CheckBox)row.FindControl("TicketCompleted"); 
if (chk.Checked) 
{ 
    string ID = ((Label)row.FindControl("supid")).Text; 
}