使用 Javascript 澄清调用代码隐藏
Calling code-behind with Javascript clarification
我正在尝试使网格视图中的行可单击,以便它会导致回发,以便我可以执行代码隐藏。
我在 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(),但最终不喜欢它们需要静态才能工作的事实。 以上实际上为我提供了我需要的功能,我只是想确保这是一种可以接受的方式(即它没有被弃用或其他东西),并且由于一些不可预见的错误,我以后不会不可避免地给自己带来麻烦在这一点上。
这可以帮助您:
-
第一个工作是因为,您已经指定了 onClick 处理程序与 javascript 中的__doPostBack函数相关联。'javascript:"只是指定函数是用javascript编写的,只有当脚本与元标记中指定的脚本不同时,才应使用此功能。
第二个不起作用,因为您已经为 javascript 处理程序指定了 html 脚本。当它转到javascript解释器时,它将无法理解标签,因此无法工作。
-
对于此处提到的所有情况,不建议使用__doPostBack。但是,如果您没有其他选择来创建回发,则可以使用它。此链接将能够为您提供更多信息。
相关文章:
- 从var向代码隐藏函数传递值
- javascript函数和代码隐藏函数的执行顺序
- 显示生成的gif;base64图像使用C#代码隐藏在img中使用JavaScript
- 使用较少代码隐藏和显示选择菜单内容的更好方法是什么?javascript
- 使用C#将在JavaScript中创建的变量值传递给ASP.Net中的服务器端(代码隐藏)
- 使用ScriptManager.RegisterStartupScript从代码隐藏调用javascript方法
- 正在代码隐藏中检索选定ListBox项的属性数据
- 为什么需要从代码隐藏调用 JavaScript 函数
- 空引用错误 Eval(字符串) 将其传递给代码隐藏中的函数
- 在代码隐藏 (asp.net VB) 中返回“完整”客户端 ID
- 使用 C# 中的代码隐藏在单击按钮时创建 Javascript 警报
- 如何从 C# 代码隐藏调用 JavaScript 函数
- 从 asp.net 代码隐藏中触发JavaScript函数
- ASP:代码隐藏的字段变量在从更新面板中的服务器返回时丢失值
- (“NetworkError:401未经授权)从JavaScript调用代码隐藏方法
- 如何将代码隐藏信息传递到javascript函数中
- 脚本执行,但代码隐藏不执行
- 无法访问字段'通过aspx页面上的javascript函数传递来自代码隐藏中函数调用的客户端id的s值(页面加载
- 访问子窗体的asp代码隐藏中的javascript window.myvariable
- 从Java脚本调用C#代码隐藏代码