更新面板中的Asp.Net Dropdownlist SelectedIndexChanged,即使使用了<triggers>

时间:2016-11-24 14:48:43

标签: asp.net

谁能告诉我为什么这不起作用?我已经到处搜寻了。
通常当我这样做时,它没有触发器。

 <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
        <div style="width:15%;float:left;">

            <asp:Image ID="Image1" runat="server" ImageUrl="~/Img/Untitled1.png" CssClass="imagez" />

        </div>
                </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>
        <div style="width:85%;float:left;height:100%;padding-top:2%;">

            <asp:Label ID="Label2" runat="server" Text="CPU" CssClass="auto-style7" Font-Names="sans-serif"></asp:Label>
            <br />

            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" CssClass="bla" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="Name" Font-Names="sans-serif" EnableViewState="true" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                <asp:ListItem Selected="True">Pick a CPU</asp:ListItem>
            </asp:DropDownList>

这是SelectedIndexChanged的代码:

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    Label2.Text = "please";
}

2 个答案:

答案 0 :(得分:0)

您应该将Label2控件包含在更新面板内容模板中,如下所示,否则将不会使用新值刷新。

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
        <div style="width:15%;float:left;">

            <asp:Image ID="Image1" runat="server" ImageUrl="~/Img/Untitled1.png" CssClass="imagez" />

<asp:Label ID="Label2" runat="server" Text="CPU" CssClass="auto-style7" Font-Names="sans-serif"></asp:Label>
            <br />

        </div>
                </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>
        <div style="width:85%;float:left;height:100%;padding-top:2%;">



            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" CssClass="bla" DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="Name" Font-Names="sans-serif" EnableViewState="true" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
                <asp:ListItem Selected="True">Pick a CPU</asp:ListItem>
            </asp:DropDownList>

注意:1。如果仍然无法使用,请尝试从触发器中删除EventName以下代码

<Triggers>
                <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="SelectedIndexChanged" />
            </Triggers>
  1. 如果仍然无效,请从下拉列表中删除CssClass="bla"并尝试更改客户端下拉列表的任何行为

答案 1 :(得分:0)

您想要更改updatepanel之外的标签。而不是逻辑。 如果将Label2移动到

<asp:UpdatePanel><ContentTemplateit>

它会起作用。 (我测试过)