C# HiddenField的值为DropDownList C的文本

C# HiddenField的值为DropDownList C的文本,c#,asp.net,drop-down-menu,hiddenfield,C#,Asp.net,Drop Down Menu,Hiddenfield,使用C,我需要下面Hiddenfield中的值,该值当前被测试为DropDownList的“文本”。有什么想法吗 HiddenField hiddenField = new HiddenField { ID = "ValueHiddenField", Value = "test" }; .cs页 protected void Page_Load(object sender, EventArgs e) { HiddenField hiddenField = new Hid

使用C,我需要下面Hiddenfield中的值,该值当前被测试为DropDownList的“文本”。有什么想法吗

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);
.aspx

我想说你的函数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 );

将下拉列表绑定到数据源后,将下拉列表的选定值设置为隐藏字段中文本的索引

dropCallbackReason.SelectedIndex = dropCallbackReason.Items.IndexOf(dropCallbackReason.Items.FindByText(ValueHiddenField.Value.ToString()));

谢谢你的回复,希望我不是很笨。但是最后的'ValueHiddenField.ClientID'返回值在当前上下文中不存在。Hi@Claudio Redi-此返回值-System.FormatException:输入字符串的格式不正确。@wilsonlego:需要通过{and}转义{and}。修正了,谢谢你的修正@Claudio Redi。当我的脚本加载时。在控制台中,它写入“callBackReason未定义”&类型错误:当我尝试在控制台上运行updareCallBackReason时,无法读取null的属性“options”。有什么想法吗?谢谢你的帖子,也谢谢你编辑@Esteric Screen Name,我在哪里可以实现上面提到的代码?@wilsonlego:应该在加载控件隐藏字段和下拉列表之后。尝试页面预呈现事件。
dropCallbackReason.SelectedIndex = dropCallbackReason.Items.IndexOf(dropCallbackReason.Items.FindByText(ValueHiddenField.Value.ToString()));