使用c#,我需要下面的Hiddenfield的值,目前是"test"作为下拉列表的" Text "。什么好主意吗?
HiddenField hiddenField = new HiddenField { ID = "ValueHiddenField", Value = "test" };
cs页面。
protected void Page_Load(object sender, EventArgs e)
{
HiddenField hiddenField = new HiddenField { ID = "ValueHiddenField", Value = "test" };
theForm.Controls.Add(hiddenField);
string script = @"function updateCallBackReason() {
callBackReason = document.getElementById('<%=ValueHiddenField.ClientID %>').value;
return callBackReason;
}";
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "callBackReasonScript", script, true);
是
<asp:label runat="server" ID="lblCallbackReason" AssociatedControlID="dropCallbackReason" CssClass="textLabel">Reason for callback:</asp:label>
<asp:DropDownList runat="server" ID="dropCallbackReason" onChange="updateCallBackReason" ClientIDMode="Static" >
<asp:ListItem Text="-- Select Reason --" Value="1"></asp:ListItem>
<asp:ListItem Text="Booking a Test Drive" Value="6"></asp:ListItem>
<asp:ListItem Text="Discussing a Purchase" Value="11"></asp:ListItem>
<asp:ListItem Text="Contract Hire Quotation" Value="45"></asp:ListItem>
</asp:DropDownList>
将下拉列表绑定到数据源后,将下拉列表的选定值设置为隐藏字段中文本的索引。
dropCallbackReason.SelectedIndex = dropCallbackReason.Items.IndexOf(dropCallbackReason.Items.FindByText(ValueHiddenField.Value.ToString()));
我想说你的函数updateCallBackReason
没有做应该做的事情(更新隐藏字段值)。如果你没答错问题,这就是你要做的。
string script = string.Format(@"function updateCallBackReason() {{
var ddl = document.getElementById('dropCallbackReason');
var callBackReason = document.getElementById('{0}');
callBackReason.value = ddl.options[ddl.selectedIndex].innerHTML;
}}", hiddenField.ClientID );