-1

这是我的问题,我有一个带有dropdownlist控件(服务器端)的 mvc 项目,我在运行时填充了数据,我设置autopostback为 true 并启用viewstate;这个下拉列表有一个selectedIndexChanged事件处理程序,它应该在用户选择某些东西时触发。

但是,当页面加载时,Page.IsPostBack始终为 false,因此数据列表会重新填充,因此不会发生任何更改来触发事件处理程序。我在这篇文章中读到,虽然 ASP Web 表单会自动处理回发,但在 MVC 上,我必须手动编写 javascript 代码来触发回发。

你们知道我有什么方法可以做到这一点,以便它进入selectedIndexChangedEventHandler 并且不再重新填充dropdown list吗?

编辑:我已经尝试过

<script type="text/javascript">
     function OnIndexChanged() {
         var databaseList = document.getElementById("FeaturedContent_DatabaseList");

         __doPostBack(FeaturedContent_DatabaseList, '');
         //window.location.href("http://localhost:49729/home/schemas?dbName=SchoolDB");//+ document.getElementById("DatabaseLists").selectedIndex;
         //postMessage("h", "http://localhost:49729/home/schemas?dbName=SchoolDB");
         //__doPost(
     }
</script>
4

1 回答 1

2

如我所见,您正在尝试使用 MVC。所以忘记回发的想法,你不会每次都重新加载页面。您可能会对服务器执行 ajax 异步请求。这里有一些代码来获取您的事件:

 $("#state").change(function(){
       //on-change code goes in here.
       //variable "this" references the state dropdown element
 });

它的jQuery。#state是您的下拉列表的 ID。

于 2013-04-19T12:39:50.090 回答