【问题标题】:Value of HiddenField to be the Text of DropDownList C#HiddenField 的值是 DropDownList C# 的文本
【发布时间】:2013-06-12 15:43:17
【问题描述】:

使用 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

<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>

【问题讨论】:

    标签: c# asp.net drop-down-menu hiddenfield


    【解决方案1】:

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

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

    【讨论】:

    • 感谢发帖,感谢编辑@Esoteric Sc​​reen Name,我将在哪里实现上述代码?
    • @wilsonlego:应该在控件(隐藏字段和下拉菜单)加载之后。试试 Page PreRender 事件。
    【解决方案2】:

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

    【讨论】:

    • 感谢您的回复,希望我不密集。但是最后的“ValueHiddenField.ClientID”,返回值在当前上下文中不存在。
    • 嗨@Claudio-Redi - 这将返回 - System.FormatException: 输入字符串的格式不正确。
    • @wilsonlego:需要通过{{}} 逃脱{}。修复了
    • 感谢@Claudio-Redi 的修改。当我的脚本加载时。在控制台中,当我尝试在控制台上运行 updareCallBackReason 时,它会写入“callBackReason is not defined”和 TypeError: Cannot read property 'options' of null。有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2015-07-06
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多