所以我有一个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获取的此方法?
答案 0 :(得分:1)
您可以使用JavaScript将其存储在隐藏的表单字段中。然后使用HttpRequest.Form
属性从服务器端检索它很容易。
答案 1 :(得分:0)
将其作为Web方法公开并使用javascript调用它,而不是尝试从javascript获取值。 http://www.singingeels.com/Articles/Using_Page_Methods_in_ASPNET_AJAX.aspx
使用隐藏字段存在问题 - 通常,在某处立即调用数据绑定,这意味着对Web服务器的初始请求尚未设置表单字段,并且它将为空。您需要第二个请求才能填充它,以便您的表单请求具有它。从客户端调用Web方法可以解决这个问题。