本文共 710 字,大约阅读时间需要 2 分钟。
RT,今天初步解决了这个问题,解决还不是很好,下次改进。具体方法
public static void SetGridViewEditableState(GridView gv)
{
string temp = string.Empty;
for (int i = 0; i < gv.Rows.Count; i++)
{
for (int j = 0; j < gv.Rows[i].Cells.Count; j++)
{
for (int k = 0; k < gv.Rows[i].Cells[j].Controls.Count; k++)
{
try
{
temp = ((TextBox)gv.Rows[i].Cells[j].Controls[k]).Text;
if (double.Parse(temp) < 0)
{
gv.Rows[i].Cells[j].Enabled = false;
}
}
catch (Exception)
{
}
}
}
}
}
在这里对代码进行以下解释,我在这里是设置某个单元格为负数时不允许编辑。通过三层遍历找出,第一层遍历行,第二层遍历单元格,第三层遍历单元格中控件。
这里需要解释的是第三层,因为我们加入控件后,如果直接通过强制转换会出现错误
{"无法将类型为“System.Web.UI.LiteralControl”的对象强制转换为类型“System.Web.UI.WebControls.TextBox”。"}
这里可以解释参考:
解决的办法是再次遍历里面的控件,不管是不是,只管强制转换,异常不处理即可。找到之后将其enabled属性设置为false即可。
转载地址:http://fkwni.baihongyu.com/