0

以前に質問されたことは知っていますが、OnInit ごとにボタンとイベントを作成しても、イベントを発生させることはできません。私はSharepoint 2010 Webパーツを実行しており、radiobuttonlistに値を入力し、OnInitが呼び出されるたびに送信ボタンをWebパーツに追加しています。Page_Load メソッドが空です。また、オーバーライドされた CreateChildControls に paintQnA 呼び出しを入れてみましたが、結果は同じでした。

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        ...//Get data needed to create gui

        paintQnA(dr, dt, currentRow);
    }

    void paintQnA(DataRow dr, DataTable dt, int currentRow)
    {
        Panel p = new Panel();
        p.ID = currentRow.ToString();

        Label lbl= new Label();
        lbl.Text = dr["Title"].ToString();

        RadioButtonList rbl = new RadioButtonList();
        rbl.ID = currentRow.ToString() + "1";

        HtmlButton submitBtn = new HtmlButton();
        submitBtn.ID = currentRow.ToString();
        submitBtn.InnerText = "Click";
        submitBtn.ServerClick += new EventHandler(submitBtn_Click);

        ...//fill the radiobuttonlist with data

        this.Controls.Add(p);
        p.Controls.Add(lbl);
        p.Controls.Add(rbl);
        p.Controls.Add(submitBtn);

        UpdatePanel1.ContentTemplateContainer.Controls.Add(p);
    }

    void submitBtn_Click(object sender, EventArgs e)
    {
        ...//Should display another dynamically created panel but is never reached.
    }
4

2 に答える 2

1

エラーが見つかりました:

p.ID = currentRow.ToString();
submitBtn.ID = currentRow.ToString();

彼らは同じ ID を持っています...同じ ID を持つことはできません。

于 2013-06-12T09:27:57.820 に答える