2016-11-24 50 views
0

谁能告诉我为什么这不起作用?我已经到处搜索了。
通常当我这样做,它没有触发器的作品。Asp.Net Dropdownlist SelectedIndexChanged更新面板中,即使使用<Triggers>

<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"; 
} 
+0

你忘了提到什么是不工作 – Andrei

+0

selectedindexchanged事件不会触发! – Nicholas

+0

只有一个'ListItem'。没有什么可以改变的。 – VDWWD

回答

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> 
  • 如果仍然没有工作,从下拉列表中删除CssClass="bla"和尝试,如果它的变化在客户端下拉的任何行为
  • 0

    你要到c挂起超出updatepanel的标签。它不是逻辑。 如果将Label2的到

    <asp:UpdatePanel><ContentTemplateit> 
    

    它会奏效。 (我测试过)