我是新手,在试着往PANEL里面填充控件的时候,有一个很奇怪的问题,我已经往PANLE已经填充了一堆linkbutton,并且在界面上都显示出来了,这时,我想给每一个BUTTON添加一个CLICK事件,我在page_load中完成了这一系列的工作。当我点击linkbutton的时候,问题就出现了,首先又执行了一次page_load,其次在page_load里面找不到我需要的linkbutton了,无论是用 foreach (Control link1 in Panel1.Controls) , 还是用 foreach (Control l1 in FindControl("Table1").Controls) ; 我都找不到我需要的linkbutton了,由于找不到LINKBUTTON,我之前在page_load中产生的linkbutton_click也无法执行了,请问这是什么原因啊??下面是我的源码。我最终的目的是给每一个自动产生的linkbutton都赋予同样的linkbutton_click事件!!
protected void page_load(object sender, EventArgs e)
{
try
{
//从上一个页面获取值,填入入SQL当条件进行判断
TextBox l1 = (TextBox)PreviousPage.FindControl("TextBox1");
SqlConnection Connection1 = new SqlConnection("Data Source=own2;Initial Catalog=ljbb;User ID=sa");
Connection1.Open();
string Sql1 = "select name from modulegrant id=" + "'" + l1.Text + "'";
SqlDataAdapter s1 = new SqlDataAdapter(Sql1, Connection1);
DataSet d1 = new DataSet();
s1.Fill(d1, "mytable");
//把SQL取出的值填入dataset中,再通过循环把值赋给每一个linkbutton的id;
//同时给每一个linkbutton初始化click事件;
if (d1.Tables["mytable"].Rows.Count != 0)
{
int num = d1.Tables["mytable"].Rows.Count / 8 + 1;
int k = -1;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < 8; j++)
{
if (k < d1.Tables["mytable"].Rows.Count)
{
k = k + 1;
LinkButton t1 = new LinkButton();
t1.ID = "LinkButton" + Convert.ToString(k + 1);
t1.Text = Convert.ToString(d1.Tables["mytable"].Rows[k][0]);
t1.Click = += new EventHandler(this.LinkButton_Click);
this.Panel1.Controls.Add(t1);
} }
}
}
}
catch
{
}
}我最想知道原因的就是,当我点击自动产生的linkbutton时,为什么在page_load里面就找不到这个Linkbutton了???
请高手指点一二;
protected void page_load(object sender, EventArgs e)
{
try
{
//从上一个页面获取值,填入入SQL当条件进行判断
TextBox l1 = (TextBox)PreviousPage.FindControl("TextBox1");
SqlConnection Connection1 = new SqlConnection("Data Source=own2;Initial Catalog=ljbb;User ID=sa");
Connection1.Open();
string Sql1 = "select name from modulegrant id=" + "'" + l1.Text + "'";
SqlDataAdapter s1 = new SqlDataAdapter(Sql1, Connection1);
DataSet d1 = new DataSet();
s1.Fill(d1, "mytable");
//把SQL取出的值填入dataset中,再通过循环把值赋给每一个linkbutton的id;
//同时给每一个linkbutton初始化click事件;
if (d1.Tables["mytable"].Rows.Count != 0)
{
int num = d1.Tables["mytable"].Rows.Count / 8 + 1;
int k = -1;
for (int i = 0; i < num; i++)
{
for (int j = 0; j < 8; j++)
{
if (k < d1.Tables["mytable"].Rows.Count)
{
k = k + 1;
LinkButton t1 = new LinkButton();
t1.ID = "LinkButton" + Convert.ToString(k + 1);
t1.Text = Convert.ToString(d1.Tables["mytable"].Rows[k][0]);
t1.Click = += new EventHandler(this.LinkButton_Click);
this.Panel1.Controls.Add(t1);
} }
}
}
}
catch
{
}
}我最想知道原因的就是,当我点击自动产生的linkbutton时,为什么在page_load里面就找不到这个Linkbutton了???
请高手指点一二;
解决方案 »
- C#调用SetWindowLong(hWnd, GWL_WNDPROC, MyWndProc)子类化SysListView32报错。
- C# 按行查询数据时同时显示正在查询的行数?
- 请教大神们C# panel1上的视频如何显示在 panel2上?
- C#中加密效率最好的是什么加密?要耗资源少的就行`
- c# menuscript 的控制问题,谢谢帮忙
- DataGridView手动设置列后,无法显示水平滚动条
- sql server数据库,打包与安装,急,重分感谢。
- 上了DATAGRID分页查询的当!
- 寻问C#视频教程
- m.LParam.ToInt32() == 1 //是什么意思???
- [求助]datagridview,双击某单元格,弹出一窗体
- 报表rdlc显示图片问题
被GC 回收了