ASP.NET下拉选定的索引未更改事件

时间:2012-10-01 10:23:08

标签: asp.net drop-down-menu eventtrigger

ASP.NET中的DropDownList有一个onSelectedIndexChange事件,当为下拉列表更改选定的索引时会触发该事件。

我遇到过一种情况,当DropDown的SelectedIndex在选择时没有改变时,我需要触发类似的事件。

在这种情况下,我完全不知道该怎么做?

非常感谢任何帮助/参考。

谢谢。

4 个答案:

答案 0 :(得分:0)

为选定的索引更改事件分配事件处理程序,并将autopostback设置为true 在标记中

或代码

mydropdownlist.SelctedIndexChanged += NameOfMethod

然后像这样定义处理程序

protected void NameOfMethod(object sender, EventArgs e)
{
     //your code here
}

<强>更新 根据定义,selectedindexchanged事件只会在索引更改时触发。如果你想强制回传,将需要一些JavaScript。这是一个如何使用jquery

执行此操作的示例
$(function() {
    $('select').change();
});

答案 1 :(得分:0)

假设您的页面上有另一个导致回发的服务器端控件,您可以在回发事件中为另一个控件编写例程,该控件将当前选择与先前选择进行比较并触发自定义事件(或如果值没有改变,你想要发生的例程。

那就是说,我必须想象有一种更简单的方法来实现你想要实现的总体目标,但你必须在你的问题中更具体一点。

<强>更新

我必须假设您在处理表单时使用下拉列表中的值。为什么不从隐藏的下拉菜单和显示的链接按钮开始?只需从下拉列表中选择一个默认值,然后允许用户根据需要进行更改。

这是一个显示行为的小提琴:http://jsfiddle.net/rjaum/

答案 2 :(得分:0)

我认为这很正常。事件为SelectedIndexChanged,您说您选择了之前选择的相同项目。所以索引保持不变,没有改变,事件也不会触发。可能你看看OnClick。

问题是您第二次点击时没有更改索引,因此下拉列表仍在等待您更改

答案 3 :(得分:0)

这很容易。 你可以使用javascript / jquery / server side code等来实现这一点。假设用户 点击控件。 在pageLoad

上有这样的东西
PageLoad()
{
       YourDropDownList.Attributes.Add("onclick","javascript:CallHelloWorld();return false;");
}

然后在服务器端,您可以使用WebMethod属性

修饰方法
[WebMethod()]
public static string HelloWorld()
{
      return "Hello foo";
}

在您的客户端aspx中,您可以使用jQuery来调用您的webmethod

<script language="text/javascript">
 function CallHelloWorld()
 {
     // Call HelloWorld webmethod using jQuery $.ajax
 }
 </script>

修改 您可以使用radiobutton列表而不是dropdownlist。这样,在客户端,您可以在单击单选按钮时检查事件是否已选中(如果已选中,则会触发您的事件)。 的修改 如果您想特别使用下拉列表Fire event each time dropdown list is selected with JQuery

,请尝试查看此主题