0

ドロップダウンリスト「dropCallbackReason」の「テキスト値」を「ValueHiddenField」ID に宣言して、それを JavaScript 変数として使用できるようにする必要があります。

C# を介して HiddenField を宣言できるだけでなく、C# を介して Javascript 変数 'c​​allBackReason' を宣言できるようにする必要があります。C# を介してこれを行う方法はありますか?

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

1 に答える 1

1

HiddenFieldプログラムでコントロールを追加する方法を次に示します。コントロールを直接追加することはできないことに注意してください。またはPage.Controlsのようなコンテナに配置する必要があります。ContentPlaceholderPanel

HiddenField hiddenField = new HiddenField {ID = "ValueHiddenField", Value = "test"};
SomePanel.Controls.Add(hiddenField);

スクリプト ブロックを登録する方法は次のとおりです。

string script = @"function updateCallBackReason() {
                    callBackReason = document.getElementById('<%=ValueHiddenField.ClientID %>').value;
                    return callBackReason;
                }";
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "callBackReasonScript", script, true);

これを行うのに適した場所は、Page_LoadまたはPage_PreRenderです。

于 2013-06-11T13:54:45.373 に答える