我有一个gridview。当我点击其中的一行时,我必须转到javascript,就像这样。
<script type="text/javascript" language="javascript">
function GetDetails(rowNo)
{
document.getElementById('hidRowNo').value = rowNo
document.getElementById('btnDet').click();
}
</script>
我在codebehind
中编写了以下代码 protected void btnDet_Click(object sender, EventArgs e)
{
if (hidRowNo.Value != "")
{
int rowNo = Convert.ToInt32(hidRowNo.Value);
TextBox1.Text = GridView1.Rows[rowNo].Cells[0].Text;
TextBox2.Text = GridView1.Rows[rowNo].Cells[1].Text;
TextBox3.Text = GridView1.Rows[rowNo].Cells[2].Text;
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "GetDetails(" + e.Row.RowIndex + ");");
}
}
问题是javascript正在运行但是document.getElementById('btnDet')。click();也没有工作。虽然调试也没有,控制没有转移到btnDet_Click.what必须包括在后面的代码中将控制移动到btnDel_Click。
任何人都可以帮忙吗?
答案 0 :(得分:3)
怎么样?
__doPostBack('btnDet','OnClick');
而不是
document.getElementById('btnDet').click();
在服务器端页面加载事件中,只需添加此代码...
ClientScriptManager.GetPostBackEventReference(btnDet)
点击此处msdn article
但是你的代码也应该有效。
您是否尝试过直接点击该按钮。这有用吗?
答案 1 :(得分:0)
看起来为btnDel按钮生成了onclick事件。但是在包含此按钮的提交表单上没有被触发。你要替换
document.getElementById('btnDet').click();
带
document.forms[0].fireevent('onsubmit');