从Web表单将参数传递给数据绑定

时间:2011-06-08 19:17:03

标签: c# .net asp.net

所以我有一个Web Forms asp控件:

<asp:DropDownList runat="server" ID="ExistingTemplate" ClientIDMode="Static" />

在后端代码中,它通过以下内容填充:

public override void DataBind()
    {
        base.DataBind();

        var selectList = Chatham.Web.Models.Indications.DropDownData.AllEditableTemplates();
        ExistingTemplate.DataSource = selectList.Items;
        ExistingTemplate.DataTextField = selectList.DataTextField;
        ExistingTemplate.DataValueField = selectList.DataValueField;
        ExistingTemplate.DataBind();


        SetTabVisibility();
    }

现在,我想重构AllEditableTemplates方法来获取参数。此参数只能通过主页前端的客户端Javascript代码访问。

如何将参数传递给我从页面上的Javascript获取的此方法?

2 个答案:

答案 0 :(得分:1)

您可以使用JavaScript将其存储在隐藏的表单字段中。然后使用HttpRequest.Form属性从服务器端检索它很容易。

答案 1 :(得分:0)

将其作为Web方法公开并使用javascript调用它,而不是尝试从javascript获取值。 http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx

使用隐藏字段存在问题 - 通常,在某处立即调用数据绑定,这意味着对Web服务器的初始请求尚未设置表单字段,并且它将为空。您需要第二个请求才能填充它,以便您的表单请求具有它。从客户端调用Web方法可以解决这个问题。