【问题标题】:What is the most efficient and robust way to program ASP.NET with javascript?使用 javascript 对 ASP.NET 进行编程的最有效和最可靠的方法是什么?
【发布时间】:2011-03-27 13:17:21
【问题描述】:

我想知道用 JS 编写 ASP.NET 的最佳方法是什么? 到目前为止,我一直在尝试使用 Codebehind attributes.add("onclick," ...."); 有没有更好更高效的方式来使用 JS 和 ASP.NET?

谢谢

【问题讨论】:

  • 我认为在单独的 js 文件中编写函数比尝试从后面的代码编写所有 javascript 函数更有效和灵活。
  • 但是我怎样才能做到这一点呢?我不知道我的控件的 ID...(ctl100....)
  • 你能说得更具体些吗?你写自定义控件,需要他们写一些JS到浏览器吗?
  • @oshafran - 关于 ID,您可以通过在后面的控制代码中添加 this.ClientID 来找到它..
  • 如果您在 .Net 4.0 中,也可以使用 ClientIDMode="Static"

标签: javascript asp.net webforms


【解决方案1】:

在一个单独的 js 文件中编写你的所有函数比你现在所做的要灵活得多。问题可能是在您的 js 文件中获取控件 ID。 嗯,有很多方法。

硬编码

只需查看源代码并找出您要使用的控件的 ID。 这很容易,但如果您可能想在某个时间点更改控件的 ID,则相应的功能将无法正常工作

类似的东西

用 aspx 文件中的所有 ClientID 声明一个变量,在 js 文件中使用它

var MyControlIDs = {"Textbox1":"<%= Textbox1.ClientID %>","Label1":"<%= Label1.ClentID %>"};

在你的 js 文件中 var mycontrol= window.MyControlIDs 并在任何你想要的地方使用它

var textbox = document.getElementById(mycontrol.TextBox1);

【讨论】:

    【解决方案2】:

    许多 WebControls 都有一个 OnClientClick 属性,这相当于您正在做的事情。此外,您始终可以在标记中为没有该属性的控件设置它。

    【讨论】:

    • 谢谢。这是使用 JS 和 ASP.NET 的最佳方式吗?使用这种编程方法?
    • 另外,其他事件呢?喜欢 onmousemove?
    • @oshafran 我不记得任何在 .NET 中具有 onmousemove 属性的控件。最简单的可能是使用标记来设置它。否则你提到的方法是正常的方法。还有更复杂的方法,包括创建自己的控件或覆盖渲染。
    猜你喜欢
    • 2018-01-07
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2012-07-02
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    相关资源
    最近更新 更多