您好我正在使用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();
}
}
答案 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);