0

に続くユーザー コントロールがありますMyPage.aspx。ユーザー コントロールにはドロップダウン リストがほとんど含まれていません。ただし、コードを実行しAutopostback = trueてドロップダウン項目を変更すると、他のイベントは発生しますが、発生しませんSelectedIndexChanged

<asp:DropDownList ID="ddPages1" runat="server" EnableViewState="true" AutoPostBack="true"
    onselectedindexchanged="ddPages1_SelectedIndexChanged">
</asp:DropDownList>

ascx の背後にあるコード:

protected void ddPages1_SelectedIndexChanged(object sender, EventArgs e)
{
    ...
}

ascxにもありReportViewer、レポートのページ数をドロップダウンリストに入力しています。

protected override void Render(HtmlTextWriter writer)
{
    TotalPages = ReportViewer1.LocalReport.GetTotalPages();
    txtPageCount1.Text = Convert.ToString(TotalPages);
    if (TotalPages > 0)
    {
        for (int i = 1; i <= TotalPages; i++)
        {
            ListItem listItem = new ListItem();
            listItem.Value = i.ToString();
            listItem.Text = i.ToString(); 
            ddPages1.Items.Add(listItem);
        }  
    }
    base.Render(writer);
 }
4

3 に答える 3

1

これを試して:

がある場合はddPages1.Items.Add(listItem);、に置き換えます

if(!this.IsPostBack)
{
    ddPages1.Items.Add(listItem);
}

ここで発生する可能性のある問題は、毎回リストにデータを入力すると、選択が失われることです。

于 2012-11-01T05:02:28.317 に答える
0

詳細を教えてください。SelectedIndexChanged イベントにどのようにバインドしますか? プログラムでバインドしていますか?または宣言形式を使用しますか?

ViewState を有効にしましたか?

于 2012-11-01T04:45:43.667 に答える
0

ドロップダウンリストにセットがありAutopostback = trueますが、おそらくユーザーコントロールに配置しAutopostback = trueませ

于 2012-11-01T04:54:34.133 に答える