在其他控件事件ASP.NET中更新HTML输入值

时间:2016-07-21 07:09:03

标签: c# 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 =&#34; server&#34;更新和许多其他html控件。不像在页面加载中那样工作:

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

1 个答案:

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

此代码有效,因为这是更新面板的工作方式。只要更新面板中的控件更改状态,它就会启动异步回发。默认情况下,更新面板的更新模式属性设置为&#34;自动&#34;。因此,只有更新面板的内容模板中的代码才会发送到服务器并返回更新的信息。

并且您最好提供完整的代码,以便其他用户可以理解代码并更好地帮助您。