标题:自定义事件问题
只看楼主
fququ
Rank: 1
等 级:新手上路
威 望:1
帖 子:181
专家分:0
注 册:2004-5-30
 问题点数:0 回复次数:6 
自定义事件问题
从后台生成一个lbtn,然后自己定义一个事件,当lbtn接下时响应自定义事件
如下:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "del")//执行删除
{
}
if (e.CommandName == "detail")//查看详细
{
Panel1.Visible = true;
string[] detailcolumns = new string[] { "id" };
string[] detailcatption = new string[] { "编号" };
string rowno=GridView1.Rows[Convert.ToInt32(e.CommandArgument)].Cells[0].Text;
PlDisplay(tbname, detailcolumns, detailcatption,rowno );
}
}

private void PlDisplay(string table, string[] detailcolumns, string[] detailcatption, string id)
{
Label[] lb = new Label[detailcatption.Length];
TextBox[] tb = new TextBox[detailcolumns.Length];
for (int i = 0; i < detailcatption.Length; i++)
{
lb[i] = new Label();
lb[i].ID = "lb" + i.ToString();
lb[i].Text = " " + detailcatption[i] + ":";
tb[i] = new TextBox();
tb[i].ID = detailcolumns[i];
tb[i].Text = detailcolumns[i];
Panel1.Controls.Add(lb[i]);
Panel1.Controls.Add(tb[i]);
}
LinkButton lbtnOk = new LinkButton();
lbtnOk.ID = "lbtnOk";
lbtnOk.Text = "保存";
lbtnOk.Click += new EventHandler(lbtnOk_Click); //订阅不上吗?
Panel1.Controls.Add(lbtnOk);
}

protected void lbtnOk_Click(object sender,EventArgs e) //这个函数没返应
{
Response.Write(clsFun.MessageInfo("aaa"));//消息框
}
为什么不响应??就算响应该怎么传id进来

[此贴子已经被作者于2006-12-9 11:54:19编辑过]

搜索更多相关主题的帖子: 定义事件 string CommandName lbtn 
2006-12-09 11:38
Reejay
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-28
得分:0 
clsFun是什么
这是在控制台程序的事件代码:
lbtnOk.Click += new EventHandler(lbtnOk_Click);
Panel1.Controls.Add(lbtnOk);
这才是在Windows或ASP.NET程序的事件代码:
protected void lbtnOk_Click(object sender,EventArgs e)
{
Response.Write(clsFun.MessageInfo("aaa")); //输入测试;
}

仍记起温馨的一对手,始终给我照顾未变样 we don\'t wanna make it without you
2006-12-09 11:48
fququ
Rank: 1
等 级:新手上路
威 望:1
帖 子:181
专家分:0
注 册:2004-5-30
得分:0 
以下是引用Reejay在2006-12-9 11:48:48的发言:
clsFun是什么
这是在控制台程序的事件代码:
lbtnOk.Click += new EventHandler(lbtnOk_Click);
Panel1.Controls.Add(lbtnOk);
这才是在Windows或ASP.NET程序的事件代码:
protected void lbtnOk_Click(object sender,EventArgs e)
{
Response.Write(clsFun.MessageInfo("aaa")); //输入测试;
}

可以运行在web上的.
clsfun.messageinfo函数只是输出一条信息,是javascript的alert


2006-12-09 11:56
Reejay
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-28
得分:0 
楼主是在写web应用程序吗

仍记起温馨的一对手,始终给我照顾未变样 we don\'t wanna make it without you
2006-12-09 12:08
fququ
Rank: 1
等 级:新手上路
威 望:1
帖 子:181
专家分:0
注 册:2004-5-30
得分:0 

怎么了?难道我在写什么?


2006-12-09 12:11
Reejay
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2006-9-28
得分:0 

如果是web(ASP.NET)应用程序的话,以下代码就可以响应了:
protected void lbtnOk_Click(object sender,EventArgs e)
{
Response.Write("aaa");
}
但如果是(C#)控制台应用程序的话,以下的代码还不够完整:
LinkButton lbtnOk = new LinkButton();
lbtnOk.ID = "lbtnOk";
lbtnOk.Text = "保存";
lbtnOk.Click += new EventHandler(lbtnOk_Click); //订阅不上吗?
Panel1.Controls.Add(lbtnOk);


仍记起温馨的一对手,始终给我照顾未变样 we don\'t wanna make it without you
2006-12-09 12:18
fququ
Rank: 1
等 级:新手上路
威 望:1
帖 子:181
专家分:0
注 册:2004-5-30
得分:0 
如题.怎么解决,不响应.
上楼的,感谢回答.可是现在是web上的.为什么不行?!
我是指红色字的部分.
是不是没有指定sender 和 eventargs 两个参数?就是说是不是因为自定义函数不是继承自events.
再试试.
有没有知道的.谢先.

2006-12-09 12:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-108321-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.500525 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved