标签文本未保存在数据库中

时间:2015-04-13 07:57:35

标签: c# asp.net

您好我正在使用Gridview,其中我有一列复选框,其中一个标签检查标签文本正在改变但是当我将其插入数据库时​​,它采用标签的默认值。

Html

<asp:GridView ID="grdData" runat="server" style="Text-align:center;">
     <Columns>
        <asp:TemplateField>
             <ItemTemplate>
                 <asp:CheckBox ID="CheckBox1" runat="server" onclick="changeTextValue(this); ChildCheckBox(this)"/>
             </ItemTemplate>
             <HeaderTemplate>
                 <asp:CheckBox ID="CheckBox2" runat="server" OnClick="CheckAllEmp(this)"/>
             </HeaderTemplate>
         </asp:TemplateField>
         <asp:TemplateField>
         <HeaderTemplate>
               <asp:Label ID="Status_Header" runat="server" Text="Status"/>
         <HeaderTemplate>
         <ItemTemplate>
          <asp:Label ID="Label1" runat="server" EnableViewState="true" ClientIDMode="Static">0</asp:Label>
          </ItemTemplate>
          </asp:TemplateField>
    </Columns>
</asp:GridView>

这是我的代码隐藏代码:

foreach (GridViewRow g1 in grdData.Rows)
   {
     SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Real_Attendance"].ConnectionString);
     using (SqlCommand cmd = new SqlCommand("Insert into Attendanc (Stu_id,Status,time,Date,Sub_id) values (@Stu_id, @Status, @Time, @Date, @Sub_id)", con))
         {
            cmd.Parameters.AddWithValue("@Stu_id", g1.Cells[3].Text);
            cmd.Parameters.AddWithValue("@Status", ((Label)(g1.FindControl("Label1"))).Text);
            cmd.Parameters.AddWithValue("@Time", Session["Time_Value"].ToString());
            cmd.Parameters.AddWithValue("@Date", date);
            cmd.Parameters.AddWithValue("@Sub_id", Session["Sub_id"].ToString());
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();
            }
        }

1 个答案:

答案 0 :(得分:0)

您可以使用 HiddenField 与Label1保持相同的值。

<强>的GridView

<ItemTemplate>
    <asp:Label ID="Label1" runat="server" EnableViewState="true" ClientIDMode="Static">0</asp:Label>
    <asp:HiddenField ID="HiddenField1" Value="0" runat="server" />
</ItemTemplate>

<强>的Javascript

changeTextValue(obj)
{
    //in the end
    var Label1Value=1;//your Label1 value 
    $(obj).parents("tr").find("input[type=hidden]").val(Label1Value);
}

<强> C#

cmd.Parameters.AddWithValue("@Status", ((HiddenField)(g1.FindControl("HiddenField1"))).Value);