如何将控制作为参数从javascript传递到服务器端

时间:2011-05-13 05:04:25

标签: javascript asp.net

我想传递控制权,即从javascript到服务器端的参数下拉列表。

e.g

我的服务器端代码

[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
public static void StatusSet(string iMode, DropDownList ddList)
{

    List<StatusHandler> iListStatus = new List<StatusHandler>();

    iListStatus.Add(new StatusHandler('A', "Active"));
    iListStatus.Add(new StatusHandler('I', "InActive"));
    iListStatus.Add(new StatusHandler('L', "All"));
    if (iMode == "i")
    {
        ddList.DataSource = iListStatus.Take(3);
    }
    else
    {
        ddList.DataSource = iListStatus.Take(2);

    }



}

和客户端代码是      PageMethods.StatusSet(modeIndex,$(“#ddlStatus”));

1 个答案:

答案 0 :(得分:0)

你想做的事是不可能的。 DropDownList是ASP.NET服务器端控件,在浏览器中不存在。即使您可以在javascript中创建类似于下拉列表的序列化版本并将其传递给页面方法的内容,对其进行数据绑定也不会对浏览器中的下拉列表产生任何影响。

您有两种选择可以执行您想要执行的操作(更新客户端下拉列表中的项目列表):

  1. 让您的页面方法以某种形式将列表项目传回客户端上的javascript代码,然后将其加载到下拉列表中。
  2. 使用UpdatePanel(不是PageMethods)并让服务器端代码使用数据绑定并更新下拉列表内容。