2016-07-21 79 views
1

輸入值在頁面加載時正確更新:在其他控制事件更新HTML輸入值ASP.NET

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     txtSupplierType.Value = "Local"; 
    } 
} 

但是當我們試圖從像其他控制事件更新:

ASPX第

<asp:DropDownList runat="server" ID="ddlProduct" name="form-control" class="form-control select-chosen" OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged" AutoPostBack="true"> </asp:DropDownList> 

SelectedIndexChanged事件

protected void ddlProduct_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     txtSupplierType.Value = "Global"; 
    } 

它不會更新和RUNAT =「服務器」許多其他HTML控件不會在頁面加載工作:

<input type="text" id="txtSupplierType" runat="server" name="example-text-input" class="form-control" /> 
+0

發表更多驗證碼,起碼ddlProduct定義。例如你爲它設置了AutoPostBack =「true」嗎? – Luca

+0

是的。

+0

您可以在輸入元素上使用更新面板,以便從服務器端更改控制行爲。 –

回答

1

下面是完整的代碼,會按照您的要求工作。

<asp:UpdatePanel ID="PnlUsrDetails" runat="server"> 
       <ContentTemplate> 
        <asp:DropDownList runat="server" ID="ddlProduct"                    name="form-control" 
         class="form-control select-chosen" 
         OnSelectedIndexChanged="ddlProduct_SelectedIndexChanged" 
         AutoPostBack="true"> </asp:DropDownList> 

        <input type="text" id="txtSupplierType" runat="server" 
         name="example-text-input" class="form-control" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 

此代碼有效,因爲這是更新面板的工作原理。它會在更新面板中的控件更改狀態時啓動異步回發。並且默認更新面板的更新模式屬性設置爲「自動」。因此只有更新面板的內容模板中的代碼纔會發送到服務器並返回更新的信息。

你最好提供整個代碼,以便其他用戶可以理解代碼並幫助你更好的方式。

相關問題