簡體   English   中英

dropdown onselectedindexchanged事件未觸發並且值保留在回發c#

[英]dropdown onselectedindexchanged event not firing and value kept on postback c#

我無法將onselectedindexchanged事件的下拉列表觸發,當我進行選擇時,它會重置onpostback的下拉列表的值,即使我在頁面加載事件中有if (!ispostback)

這是asp中母版頁中的內容頁面,如果重要的話。

<asp:UpdatePanel runat="server">
  <ContentTemplate>                   
    <asp:DropDownList ID="EventSVCProgList" runat="server" 
      EnableViewState="true" 
      OnSelectedIndexChanged="EventSVCProgList_SelectedIndexChanged" 
      AutoPostBack="true"></asp:DropDownList>
  </ContentTemplate>
</asp:UpdatePanel>

protected void Page_Load(object sender, EventArgs e)
{

    if (!IsPostBack)
    {
        SqlConnection constr = new SqlConnection(ConfigurationManager.ConnectionStrings["CBTestDBConnectionString"].ConnectionString);

        SqlCommand eventsvcprogCMD = new SqlCommand("select*from SvcProg where eventatteligable=1", constr); // table name 
        SqlDataAdapter eventsvcadapt = new SqlDataAdapter(eventsvcprogCMD);
        DataSet eventsvcset = new DataSet();
        constr.Open();
        eventsvcadapt.Fill(eventsvcset);  // fill dataset
        EventSVCProgList.DataTextField = eventsvcset.Tables[0].Columns["SvcProgID"].ToString(); // text field name of table dispalyed in dropdown
        EventSVCProgList.DataValueField = eventsvcset.Tables[0].Columns["eventatteligable"].ToString();
        EventSVCProgList.DataSource = eventsvcset.Tables[0];      //assigning datasource to the dropdownlist
        EventSVCProgList.DataBind();  //binding dropdownlist

        constr.Close();
    }

}

protected void EventSVCProgList_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show("Eat Poop");
    var somevalue = EventSVCProgList.SelectedValue;
}

有幾件事情。

1)如果尚未添加腳本管理器,則需要將腳本管理器添加到頂部頁面(如果尚未向頁面添加腳本管理器,則會出現運行時錯誤)

2)您需要更改更新面板內容,如下所示

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:DropDownList ID="EventSVCProgList" runat="server" AutoPostBack="True" OnSelectedIndexChanged="EventSVCProgList_SelectedIndexChanged">

            </asp:DropDownList>

        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="EventSVCProgList" EventName="SelectedIndexChanged" />
        </Triggers>
    </asp:UpdatePanel>

似乎禁用了任何父控件或頁面leven ViewState。 請檢查調試模式,您獲取EventSVCProgList.EnableViewState和其他父控件的值。

謝謝您的幫助。 它還沒有工作,所以我只是試着用javascript代替。 它與主頁面或內容頁面的設置方式有一些根本性的缺陷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM