在ASP.NET中使用onChange从HTMLSelect中加载指定值的数据

本文关键字:加载 HTMLSelect 数据 NET ASP onChange | 更新日期: 2023-09-27 18:11:51

当我从第一个<select>标签中选择一个项目时,我想在第二个<select>标签(在ASP.NET中)加载数据。

我有:

<table cellpadding="2" border="0">
<tr><td>Categories : <br /><select id="list_cat_for_list" runat="server" onchange="get_list" ></select><br />
<select id="list_got_links" runat="server"></select>
</td><td><asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="list_cat_for_list" ValidationGroup="del_cat" Display="Static" runat="server" ErrorMessage="select category"></asp:RequiredFieldValidator></td></tr>
<asp:Button runat="server" ID="Button1" OnClick="delete_category_function" Text="Delete category" ValidationGroup="del_cat" />
</table>

和后面的代码:

 protected void get_list( object sender, EventArgs e ) {
     BusinessLayerArcht layer = LoadDataFromBL();
     foreach ( CategoriesCtrlDto cto in layer.Categories ) {
        if ( cto.Name == list_cat_for_list.Value ) {
           foreach ( LinksCtrlDto lk in cto.Links ) {
              list_got_links.Items.Add( lk.Url );
           }
        }
     }
  }

当我更改选项时,IE返回get_list未定义。

我不知道我必须传递什么参数给c#函数。我知道onClick有object sender, EventArgs e

在ASP.NET中使用onChange从HTMLSelect中加载指定值的数据

您可以使用ASP下拉列表在服务器端执行此操作。

<asp:dropdown id = "id" runat="server" selectedIndexChanged="get_list"><asp:dropdownlist>

如果你需要在javascript中访问控件的客户端版本,你可以利用浏览器的"查看源"功能来获取ASP生成的控件ID,并使用该ID在任何javascript中引用。

如果你希望使用AJAX,在AJAX控件工具包中有一个扩展程序,它允许你异步地执行多个下拉的级联下拉特性,这样当用户与页面交互时,你就不会有完整的回发了。

您可以从这里免费下载该工具包

为什么不用asp.net下拉列表代替html选择呢?两者都将呈现为select元素,但使用下拉列表更改事件处理程序

会更容易。