c#后台如何动态添加一个gridview(即:aspx.cs中如何添加girdview)

c#后台如何动态添加一个gridview(即:aspx.cs中如何添加girdview),第1张

有什么样的场景需要你在后台创建gridview ?

如果在后台创建gridview,至少需要在.aspx上放一个容器控件来容纳gridview.如placeholder

创建gridivew实例

GridView grid = new GridView()

添加到窗口控件中

placeholder.Add (grid)

这里的关键点在于,必须在Page_Load事件中每次都调用创建控件的代码。这与我们一般的理解是不一样的。因为这些控件是动态添加的,在页面的源文件中并没有。所以PostBack回来之后重新构建页面时,非得再次创建。这样做不会重复创建,因为每次都重新构建了,其实原先的控件都消失了。

另外提醒注意:在动态创建控件的页面上,如果禁用ViewState,将使得页面失去作用。

所以对于你的代码,是没有错的。

只是在页面提交后,你必须在 Page_Load事件里面先重新创建你的 file_bt。

这样就没有问题了。

例如你做一个简单的例子,就能看到你要的效果。

在 Page_Load 事件里面写

Button file_bt = new Button()

file_bt.Width = 40

file_bt.Text = "完成"

file_bt.ID=dr["task_id"].ToString()

file_bt.Click+=new System.EventHandler(file_bt_Click)

然后这直接在方法中写

protected void file_bt_Click(object sender, EventArgs e)

{

Button b1 = (Button)sender

Label1.Text = "ok"

// showtask(int.Parse(Session["sele_wbs"].ToString()))

}

这样你就可以看到效果了。

注意,Page_Load方法中创建btn的那几个步骤,不能放到 if(!ispostback)

中哦。否则无法重新在提交的时候构建这个按钮。

第一个问题

用断点调试下。是否在执行过程中 丢失或 ISpostback 机制影响了。

以下 是回答 你第二个问题 添加多个。

自定义控件 首先 需要在页面 注册

<%@ Register Src="自定义控件路径.ascx" TagName="标签名称" TagPrefix="标签 前缀

" %>

例如:<%@ Register Src="WebUserControl.ascx" TagName="Ucontrol" TagPrefix="u1" %>

在form 中 使用 :

<u1:usercontrol ID="Ucontrol" runat="server" />

多个的话就 注册 多个。 并添加到form 中去。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11655766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存