ページが最初の例で読み込まれたとき、ボタンが意図したとおりに機能しない理由を理解できますか?たとえば、ボタン2はGetItems(int.Parse("2"), 3);
を呼び出しませんが、GetItems(int.Parse("4"), 3);
最初のポストバックはすべてのボタンが正しく動作するようにするButtonxはGetItems(int.Parse("x"), 3);
おかげリンクボタンの動作ポストバックと非ポストバック
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
GetItems(1, 2); //default values (first time the page is loaded)
}
GenerateButtons(5);
}
private void GenerateButtons(int c)
{
LinkButton[] x = new LinkButton[c];
for(int i=0; i<c;i++)
{
x[i] = new LinkButton();
x[i].Text = (i+1).ToString();
Panel1.Controls.Add(x[i]);
x[i].OnClick += new EventHandler(Button_Click);
}
}
protected void Button_Click(object sender, EventArgs e)
{
Button button = (Button)sender; // Which button was clicked;
GetItems(int.Parse(button.Text), 3); //3 is a constant; first argument is index of button extracted from its caption
}
PSを呼び出します。私がボタン1を参照するとき、私はbutton[0]
を念頭に置いています。 button2=button[1]
など。ポストバック後button1
がイベントに正しく添付されて、GetItems(1,3)
がトリガーされます。ポストバックボタン1の前にGetItems(3,3)
が実行されます。
'Page_Init'を使うので、最初のロードで動作します –
ありがとう、これはうまくいきました! – Halle
私はそれをあなたがそれをマークして欲しいと回答しました。 :) –