먼저 내 문제를 읽고 시간을내어 주신 데 대해 감사드립니다. :) 내 문제에 이제 단추가 메서드를 호출하지 않으려합니다 (ASP.NET - C#)
... 나는 C# 코드와 함께 새로운 버튼을 만들고에 Panel1라는 이름의 내 패널로 부착 해요 :Button novgumb = new Button();
novgumb.Click += new EventHandler(ButtonOdstrani);
novgumb.CommandArgument = "2";
novgumb.Visible = true;
novgumb.Text = "Test";
Panel1.Controls.Add(novgumb);
이렇게 만든 버튼, 내 메소드를 호출한다 ButtonOdstrani : 내가 PageLoad에 버튼 코드를 삽입 할 때
public void ButtonOdstrani(object sender, EventArgs e)
{
string asd = ((Button)sender).CommandArgument;
//...
}
지금 그것을 잘 작동하지만이 사이트에서 XML을을 writting 내 방법 안에 넣어 때, 이러한 방법으로 생성 된 버튼을 사용하여 함수를 호출하지 않습니다 ButtonOdstrani :
protected void IzpisXML()
{
BranjeXML();
string[] element = ime.Split('$');
//Button gumbs = new Button();
//gumbs.Click += new EventHandler(ButtonOdstrani);
//gumbs.Visible = true;
//gumbs.Text = ("Odstrani ");
//Panel1.Controls.Add(gumbs);
for (; z < stevec/2; z++)
{
string imeGostilne = element[i];
string naslov = element[i + 1];
string telefon = element[i + 2];
string spletnaStran = element[i + 3];
string odpiralniOD = element[i + 4];
string odpiralniDO = element[i + 5];
string boni = element[i + 6];
Label labela = new Label();
labela.Text = "<b>Ime gostilne:</b> " + imeGostilne + "<br /><b>Naslov:</b> " + naslov + "<br><b>Telefon:</b> " + telefon + "<br><b>Spletna stran:</b> " + spletnaStran + "<br><b>Odpiralni cas:</b> " + odpiralniOD + " - " + odpiralniDO + "<br /><b>Študnetski boni:</b> " + boni + "<br />";
labela.Enabled = true;
labela.EnableTheming = true;
labela.EnableViewState = true;
labela.Visible = true;
labela.ID = ("Label" + (z + 1));
Panel1.Controls.Add(labela);
Button novgumb = new Button();
novgumb.Click += new EventHandler(ButtonOdstrani);
novgumb.CommandArgument = "2";
novgumb.Visible = true;
novgumb.Text = "Test";
Panel1.Controls.Add(novgumb);
Label hr = new Label();
hr.Text = "<hr />";
hr.Visible = true;
hr.Enabled = true;
hr.EnableTheming = true;
hr.EnableViewState = true;
Panel1.Controls.Add(hr);
i += 7;
}
}
이제 for 문장 외부의 주석 처리 된 버튼을주의하십시오. "작동하지 않았다"는 것은 ButtonOdstrani라는 함수를 호출하지 않았다는 것입니다. 그냥 사이트 (PostBack)를 새로 고쳤습니다.
나는 조언 해결책에 대해 정말로 감사 할 것입니다.
OK, 이제 내가 만든 다음
private Button[] ButtonZaOdstranjevanje;
protected override void OnInit(EventArgs e)
{
ButtonZaOdstranjevanje = new Button[stevec/2];
base.OnInit(e);
BranjeXML();
for (int j=0; j < stevec/2; j++)
{
Button novgumb = new Button();
novgumb.Click += new EventHandler(ButtonOdstrani);
novgumb.Visible = true;
novgumb.Text = "Odstrani gostilno";
ButtonZaOdstranjevanje[j] = novgumb;
}
}
그러나 문제는 내가 오류 얻을 수 있습니다 :이에 heppens "인덱스 배열의 범위를 벗어난를"
ButtonZaOdstranjevanje[j] = novgumb;
stevec 값이 4/2 = 2 그래서 stevec 및 J 매개 변수가 사람이 어떻게이 오류를 수정하는 어떤 생각을 가지고 있습니까 0 으로 설정되어 있기 때문에 그것은 논리적이 아니다?