创建linkbutton后不执行此button的事件
时间:2011-12-05
来源:互联网
运行后,显示出来的页面也是有这个linkbutton的。但是当点击后不能执行那个事件,设置断点也不运行。并且页面一刷新就没有这个linkbutton了。
我知道是控件生命周期的问题,但我不知道怎么写这个代码。
我的代码如下:
gridview_bindata()
{
LinkButton LbtnGo = new LinkButton();
LbtnGo = new LinkButton();
LbtnGo.Text = "続きを見る…";
LbtnGo.CommandName = "LBtnGo";
LbtnGo.Click += new EventHandler(LbtnGo_Click);
int iGVRows = e.Row.Controls[0].Controls[0].Controls[0].Controls.Count - 1;
e.Row.Controls[0].Controls[0].Controls[0].Controls[iGVRows].Controls.Add(LbtnGo);
}
linkbutton事件:
protected void LbtnGo_Click(object sender, EventArgs e)
{
txtSql = "select * from MSTTGUseOK";
lblMsg.Text = "执行了!";
}
作者: mark3798 发布时间: 2011-12-05
作者: ximenwuji 发布时间: 2011-12-05
至少要在在Page_load中调用
作者: Sandy945 发布时间: 2011-12-05
列自己定义,俺只给一个过程
HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server"> </asp:GridView> </div> </form> </body> </html>
定义一个实现ITemplate 接口的新类 CustomGridView
C# code
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public class CustomGridView : ITemplate { public void InstantiateIn(Control container) { LinkButton EditButton = new LinkButton(); EditButton.ID = "EditButton"; // 此处很重要,不要丢失 EditButton.Text = "编辑"; EditButton.Click += new EventHandler(EditButton_Click); EditButton.DataBinding += new EventHandler(EditButton_DataBinding); EditButton.Visible = true; container.Controls.Add(EditButton); } void EditButton_DataBinding(object sender, EventArgs e) { LinkButton button = (LinkButton)sender; GridViewRow container = (GridViewRow)button.NamingContainer; DataRowView drv = container.DataItem as DataRowView; button.Text = drv.Row["Name"].ToString(); } void EditButton_Click(object sender, EventArgs e) { LinkButton button = (LinkButton)sender; } } public partial class _Default : System.Web.UI.Page { // 在Page_Init事件里添加模板列 protected void Page_Init(object sender, EventArgs e) { TemplateField myTemplateField = new TemplateField(); myTemplateField.HeaderText = "操作"; CustomGridView ctgv = new CustomGridView(); myTemplateField.ItemTemplate = ctgv; this.GridView1.Columns.Add(myTemplateField); } protected void Page_Load(object sender, EventArgs e) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(string)); dt.Columns.Add("Name", typeof(string)); DataRow dr = null; for (int i = 1; i <= 5; i++) { dr = dt.NewRow(); dr["ID"] = i.ToString(); dr["Name"] = "Name" + i.ToString(); dt.Rows.Add(dr); } if (!Page.IsPostBack) { this.GridView1.DataSource = dt; this.GridView1.DataBind(); } } }
作者: bonnibell 发布时间: 2011-12-05
LinkButton LbtnGo = new LinkButton();
LbtnGo = new LinkButton();
LbtnGo.Text = "続きを見る…";
LbtnGo.CommandName = "LBtnGo";
LbtnGo.Click += new EventHandler(LbtnGo_Click);
放到 (ispostback){}中去,那我在GVVOC_RowDataBound()中怎么调用LbtnGo呢,因为他是局部变量啊。
如果我变成全局变量,这么定义static LinkButton LbtnGo; 代码是可以运行的,但是结果还是和原来的一样,这个事件 protected void LbtnGo_Click(object sender, EventArgs e) 不运行。
在线等待。。。
作者: mark3798 发布时间: 2011-12-05
http://blog.csdn.net/sandy945/article/details/4397142
GridView动态添加模板列(VB.NET版)
http://blog.csdn.net/sandy945/article/details/4397215
作者: Sandy945 发布时间: 2011-12-05
作者: mark3798 发布时间: 2011-12-05
因为你需要每次都创建的
作者: Sandy945 发布时间: 2011-12-05
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28