Динамическое создание кнопок
Page_load(...)
{
LinkButton lbut = new LinkButton();
lbut.ID="myButton";
lbut.Text="test";
this.Controls.Add(lbut);
}
Вот типа этого как и в книге написано, но при загрузке браузером выдает ошибку, что нужно для кнопки указать тип runat="server", а как его указать динамически я не знаю. Подскажите. ПРобовал и чз Style и чз Attribute, все не то...пожалуйста.
Вы неправильно поняли. Вам нужно помещать ваш LinkButton в тег формы с runat="server". Так что если у вас id формы form1, то меняйте ваш this на него и всё.
но теперь другая проблема. Дело в том что LinkButton[] появляются по нажатию кнопки на форме и к ним присваивается событие Click, но при нажатии на линк события не происходит, почему я знаю, но как это исправить может подскажете???
Код:
lbut.Click += EventHandler(ваш_метод);
причем ваш_метод должен иметь соответствующую сигнатуру.
protected void ButtonShowNews_Click(object sender, EventArgs e)
{
int day, month, year;
day = Convert.ToInt32(TextBoxNumber.Text);
month = Convert.ToInt32(DropDownListMonth.SelectedValue);
year = Convert.ToInt32(DropDownListYear.Text);
DateTime dtFrom = new DateTime(year, month, day);
day = Convert.ToInt32(TextBoxNumber2.Text);
month = Convert.ToInt32(DropDownListMonth2.SelectedValue);
year = Convert.ToInt32(DropDownListYear2.Text);
DateTime dtBefore = new DateTime(year, month, day);
mySql.ReadAllTable("NewsTable");// возвращает результат в mySql.sdReader
DateTime dtBase = new DateTime();
int count_news = 0;
try
{
linkHeadNews = new LinkButton[isize];
while (mySql.sdReader.Read())
{
dtBase = (DateTime)mySql.sdReader["Data"];
if ((dtBase.Date >= dtFrom.Date) && (dtBase.Date <= dtBefore.Date))
{
if (count_news >= isize)
Array.Resize<LinkButton>(ref linkHeadNews, isize += 5);
linkHeadNews[count_news] = new LinkButton();
linkHeadNews[count_news].Text =mySql.sdReader["Headline_news"].ToString()+"</br></br>";
linkHeadNews[count_news].Click += new EventHandler(LinkHeadNews_Click);
Panel1.Controls.Add(linkHeadNews[count_news]);
count_news++;
}
}
}
catch (Exception ex)
{
LabelError.Text = ex.Message;
}
}
Что-то мне подсказывает, что вы хотите реализовать то, что делается с помощью ajax. Есть ли где-то пример того, что вы хотите реализовать у себя? Если "да", то киньте ссылку.
да нет, я даже не знаю что такое ajax :) .и прмера не знаю, просто тест дали, почти все сделал, а вот на этой фигне и запарился :(