我有一个带有文本框的列的网格,我想在文本框中按下时限制Backspace和Delete键。我正在使用这个脚本来做到这一点。在代码背后,在页面加载事件中,当我尝试引用网格列文本框的ID时,它们没有显示出来。我在itemtemplate中使用文本框,文本框变为只读。
使用Javascript:
function doCheck()
{
var keyCode = (event.which)?event.which:event.keyCode;
if ((keyCode == 8) || (keyCode == 46))
event.returnValue = false;
}
page_load事件:
txtCode.Attributes.Add("onKeyDown", "doCheck();");
我无法引用任何网格的文本框ID。我在某个地方出错了吗?
答案 0 :(得分:0)
您需要使用RowDataBound事件将该事件绑定到网格的每一行:
protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.cells[Index].Attributes.Add("onkeyDown", "function");
}
}
索引是包含文本框的列索引
希望这会有所帮助..
答案 1 :(得分:0)
请尝试以下代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox txtCode = (TextBox) e.Row.FindControl("txtCode");
txtCode.Attributes.Add("onKeyDown", "doCheck();");
}
}