从jQuery更新ASP.NET下拉数据源

时间:2010-07-30 14:51:29

标签: asp.net jquery

我想更新我的下拉列表数据源(再次从数据库中获取值),但我想从jQuery中执行此操作,在那里我插入/更新/删除同一数据库表中的记录。

这是我的下拉列表

<asp:DropDownList ID="ddl" runat="server" 
    AppendDataBoundItems="True" 
    DataSourceID="ShortCodeDataSource" 
    DataTextField="ShortcodeId" 
    DataValueField="ShortcodeId">
    <asp:ListItem>Select one...</asp:ListItem>
</asp:DropDownList>  

<asp:ObjectDataSource ID="ShortCodeDataSource" runat="server" 
    SelectMethod="GetAllShortcodes" 
    TypeName="Sod.Iris.Service.ShortcodeService">
</asp:ObjectDataSource>

2 个答案:

答案 0 :(得分:3)

此外,除了a432511发布的代码之外,您还可以使用UpdatePanel方法。 将您的下拉列表放在UpdatePanel中,然后从jquery中调用refresh。 在此链接上,您可以获得如何执行此操作的示例:

http://encosia.com/2007/07/13/easily-refresh-an-updatepanel-using-javascript/

欢呼声

答案 1 :(得分:1)

您需要ScriptManager EnablePageMethods = true

然后,您需要在页面的代码隐藏中使用[WebMethod]修饰的方法。该方法将负责调用数据库

[WebMethod]
public string GetNewData()
{
    // Get Data
    // maybe serialize and return
}

然后你的jQuery需要看起来像这样:

$.ajax({
  type: "POST",
  url: "MyPage.aspx/GetNewData",
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function(data, msg) {
    // Do something with data
  }
});

成功回调需要处理返回的数据并手动填充控件的下拉列表。另一种选择是从Web服务(asmx)获取序列化数据。它的功能大致相同。

希望有所帮助!