C# 使用Javascript澄清调用代码隐藏

C# 使用Javascript澄清调用代码隐藏,c#,javascript,gridview,onclick,postback,C#,Javascript,Gridview,Onclick,Postback,我试图让gridview中的一行可以点击,这样它就会导致回发,这样我就可以在后面执行代码 我在GridView的RowDataBound事件处理程序中有这个。这项工作: if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes["onmouseover"] = "this.style.cursor='pointer';this.style.textDecoration='underline';";

我试图让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>";
}
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”]=“uu doPostBack('postbackromitemWindow',”);”;
}
问题:

  • 为什么第一个有效,而第二个无效
  • 在尝试完成此任务(从javascript调用代码隐藏)时,是否有其他方法可以完成此任务?我读了一些书,偶然发现了WebMethods(),但最终不喜欢它们必须是静态的才能工作。以上事实上为我提供了我所需要的功能,我只是想确保这是一种可以接受的方式(即,它不是不推荐的或什么的),并且我不会因为一些不可预见的错误而不可避免地给自己带来麻烦

  • 这可以帮助您:

  • 第一个是有效的,因为您已经指定onClick处理程序与javascript中的_doPostBack函数相关联。“javascript:”只指定函数是用javascript编写的,只有当脚本与meta标记中指定的脚本不同时才应使用它

    第二个不起作用,因为您已经为javascript处理程序指定了html脚本。当javascript解释器执行此操作时,它将无法理解标记,因此无法工作

  • __对于上述所有情况,不建议使用doPostBack。但是如果您没有其他选择来创建回发,那么您可以使用它。这将能够给你更多的信息


  • 这可以帮助您:

  • 第一个是有效的,因为您已经指定onClick处理程序与javascript中的_doPostBack函数相关联。“javascript:”只指定函数是用javascript编写的,只有当脚本与meta标记中指定的脚本不同时才应使用它

    第二个不起作用,因为您已经为javascript处理程序指定了html脚本。当javascript解释器执行此操作时,它将无法理解标记,因此无法工作

  • __对于上述所有情况,不建议使用doPostBack。但是如果您没有其他选择来创建回发,那么您可以使用它。这将能够给你更多的信息