我有我的gridviews itemtemplate标签
<asp:TemplateField HeaderText="TotalTime" SortExpression="TotalTime">
<ItemTemplate>
<asp:TextBox ID="TotalTime" readonly="true" runat="server" ></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
在我的按钮点击事件上我试图将文本框readonly属性设置为false并获取值,但它对TotalTime文本框不起作用
protected void BtnSaveAttendence_Click(object sender, EventArgs e)
{
foreach (GridViewRow Gr in GridView1.Rows)
{
TextBox txt = (TextBox)(Gr.FindControl("TotalTime"));
txt.ReadOnly = false;
}
int Rest = new int();
object[] objAttnd = new object[8];
foreach (GridViewRow GR in GridView1.Rows)
{
objAttnd[0] = 0;
objAttnd[1] = ((Label)GR.FindControl("LblEMPNAME")).Text;
objAttnd[2] = UserInfo.Company.CompanyID;
objAttnd[3] = Common.Convert_MM_DD_YYYY(txtDate1.Text);
objAttnd[4] =((TextBox)GR.FindControl("InTime")).Text;
objAttnd[5] =((TextBox)GR.FindControl("OutTime")).Text;
objAttnd[6] = ((TextBox)GR.FindControl("TotalTime")).Text;
objAttnd[7] = Convert.ToDecimal(((Label)GR.FindControl("LblEmpCode")).Text);
foreach (GridViewRow Gr in GridView1.Rows)
{
TextBox txt = (TextBox)(Gr.FindControl("TotalTime"));
txt.ReadOnly = true;
}
Rest = objAttendance.InsertUpdateAttendenceDetailNew(objAttnd);
}
if (Rest == -1)
{
lblError.Text = "<div class='ErrorMsg'> Attendance details already added for Selected date !!</div>";
}
}
Plz告诉我如何获得价值
答案 0 :(得分:0)
就您的代码而言,它只会读取Textbox
的一个值({1}}并在Readonly false
循环中读取Foreach
内的值循环本身你有另一个Foreach
循环找到Foreach
并生成Textbox
所以取出Readonly true
循环并改变你的代码,如,
ForEach
答案 1 :(得分:0)
尝试从后面的代码中添加readonly属性,如下所示:
TotalTime.Attributes.Add("readonly", "readonly");
在读取后面代码中的值之前,不需要将readonly设置为false。