【发布时间】:2012-04-17 05:52:30
【问题描述】:
我正在尝试使 gridview 中的一行可点击,以便它导致回发,以便我可以执行代码隐藏。
我的 GridView 的 RowDataBound 事件处理程序中有这个。这个作品:
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
e.Row.Attributes["onclick"] = "javascript:__doPostBack('PostBackFromItemWindow', '');";
}
但这不起作用:
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";
e.Row.Attributes["onmouseout"] = "this.style.textDecoration='none';";
e.Row.Attributes["onclick"] = "<script type='text/javascript'>__doPostBack('PostBackFromItemWindow', '');</script>";
}
问题:
- 为什么第一个有效,而第二个无效?
- 在尝试完成此任务(从 javascript 调用代码隐藏)时,是否有其他方法可以做到这一点?我做了一些阅读并遇到了 WebMethods(),但最终不喜欢它们需要静态才能工作的事实。上面实际上给了我我需要的功能,我只是想确保它是一种可接受的方式(即它没有被弃用或其他东西),并且由于一些不可预见的错误,我不会不可避免地给自己带来麻烦此时。
【问题讨论】:
标签: c# javascript gridview onclick postback