webform的datagrid容器中,点击事件中根据前端命名的id去获取datagrid的行数,获取不到datagrid的行数,是因为属性中的EnableViewState的值为false,改为true就好了,如下图
部分代码
protected void Button_Claim_Click(object sender, EventArgs e)
{
obj = new DataService();
string PainInListID = "",EmpName = "",IsClaimedFlag="";
obj.TransactionBegin();
try
{
for (int i = 0; i < this.DataGrid_PainInClaim.Items.Count; i++)
{
PainInListID = DataGrid_PainInClaim.Items[i].Cells[1].Text;
IsClaimedFlag = DataGrid_PainInClaim.Items[i].Cells[2].Text;
//获取输入框的值
TextBox txtEmp = (TextBox)DataGrid_PainInClaim.Items[i].FindControl("TextBox_Emp");
EmpName = txtEmp.Text;
if (EmpName != "" && IsClaimedFlag!="1")
{
//认领修改认领状态以及认领人
DataSet dsemp = obj.GetSQLDataset("select * from tfdEmp where EmpName='" + EmpName + "'");
string empid = dsemp.Tables[0].Rows[0]["EmpID"].ToString();
obj.ExeSQLCommand("update tfdPainInList set IsClaimedFlag='1',ClaimedEmpID='" + empid + "',ClaimedEmpName='" + EmpName + "',ClaimedDateTime=GetDate() where PainInListID='" + PainInListID + "'");
}
}
}
catch (Exception ex)
{
this.Label_Message.Text = "认领失败!原因:" + ex.Message;
obj.TranscationRollback();
return;
}
obj.TransactionCommit();
this.Label_Message.Text = "<script defer>alert('认领成功!')</script>";
BindPainInList();
}