【问题标题】:calling javascript function on selected index change of select input type in ASP.NET在 ASP.NET 中选择输入类型的选定索引更改上调用 javascript 函数
【发布时间】:2009-08-03 19:01:12
【问题描述】:

Is there a way to call a javascript function when the selectedIndex of a select input has been changed?

在c#代码隐藏文件中使用此代码

riskSeverityDropDown.SelectedValue = Convert.ToString(planRisk.Severity);
riskSeverityDropDown.SelectedIndexChanged += new EventHandler(riskSeverityDropDown_SelectedIndexChanged);
riskSeverityDropDown.AutoPostBack = true;

希望在索引更改时使用 javascript 更改页面上的其他内容。

任何帮助将不胜感激。 提前致谢

【问题讨论】:

  • 看起来您正在尝试构建动态控件...您是否考虑过在标记中放置常规控件并根据需要将可见设置为 true 或 false ?

标签: c# .net javascript


【解决方案1】:

您已经在使用服务器代码(AutoPostBack 是真的),这意味着 无论如何您都将重建整个页面。 此时运行 javascript 会有点愚蠢,因为任何您对 DOM 所做的更改将丢失,您想要发送的任何 ajax 请求都可以由普通服务器代码处理。如果您真的想这样做,您可以只注册脚本以在回发后页面加载时运行

另一方面,如果您可以完全不使用任何服务器代码,那么将 AutoPostBack 设置为 false 并且基本的 html 选择控件有一个不错的 onchange 事件您可以处理。 p>

【讨论】:

    【解决方案2】:

    只需将 onchange 添加到您的 asp:dropdownlist。

    <asp:DropDownList ID="riskSeverityDropdown"
                      AutoPostBack="True"
                      SelectedIndexChanged="riskSeverityDropDown_SelectedIndexChanged"
                      onChange="functionName()"
                      runat="server" />
    

    从代码隐藏使用中做到这一点:

    riskSeverityDropdown.Attributes["onchange"] = "functionName()";
    

    【讨论】:

    • 这行不通——只要 AutoPostBack 也是 true,他的 javascript 所做的任何更改都会立即丢失。
    【解决方案3】:

    您想向名为“onchange”的下拉菜单添加一个属性,并将其设置为调用您选择的 JavaScript 方法。

    【讨论】:

    • 这行不通——只要 AutoPostBack 也是 true,他的 javascript 所做的任何更改都会立即丢失。
    【解决方案4】:

    使用 JQuery。它公开了一组丰富的事件,您可以使用这些事件以统一的方式对几乎任何东西进行编码。它也很容易学习、紧凑且流行。

    简而言之,如果您使用 JQuery,就不会出错。它旨在很好地解决此类问题。

    【讨论】:

      猜你喜欢
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2019-02-22
      • 1970-01-01
      相关资源
      最近更新 更多