2009-09-17 39 views
4

的时间内得到的datagridview的动态添加列的值,我已经做了一个表格功能动态创建网格视图。如何在回发

我已经使用的概念“如何在网格视图动态地创建模板列”

链接:https://www.codeproject.com/KB/aspnet/DynamicTemplateColumn.aspx

它的工作好。

我创建控制运行时设置控件的各种属性,并将其绑定到GridView的列。

例如,如果我想添加文本框列到GridView控件,然后 我创建文本框,设置文本框的不同的属性,而模板添加到GridView的列。

但问题是,一旦与文本框列页面加载数据网格,我在这列中输入一些数据。

然后点击页面上的保存按钮。当我点击保存,然后回发后,我无法获得该文本框列的数据。

对于实施例

1)与文本框柱(由运行时)

2)添加一个行中的DataGridView

2装入gridview的)在该列(文本框列写入数据)

3)点击保存按钮(保存的GridView的数据)

4)页面回来后(这里的GridView有没有行!)

页面回发时显示行数0!

那么如何获取该文本框的值?

回答

1

请务必在正确的时间访问该页面。如果您在OnInit事件中访问它,ViewState将不会被映射回您的网格。

PageLoad可能会适当。

+0

您好,感谢您的回复 但我已检查页面初始化和页面加载grdiview状态。 但我得到相同的(0行)。 即使我已经显式启用gridview的视图属性和我将动态添加到gridview列中的控件。 – Mike 2009-09-17 13:39:06

+0

是否确定ViewState已启用?应该是页面上的属性“EnableViewstate = true”或直接在控件上。检查一下。 – Juri 2009-09-17 13:52:00

+0

非常感谢您的建议。 我已经得到了答案。我忘记了asp.net的生命周期。我在GridView的“PreRender”和“Unload”事件中获得了这些数据。 再次感谢您的参与。 :) – Mike 2009-09-17 14:27:32

0

我看来,像它没有被添加到视图状态,有没有什么办法,你可以在增加吗?

或者像树里提到的,未填充的视图状态,做其他控件价值了吗?

编辑: 也许它没有被添加到页面的控件集合 - 你能看到,如果它是在那里?

+0

你好,感谢您的回复 但我检查页面初始化和页面加载grdiview状态。 但我得到相同的(0行)。 即使我已经显式启用gridview的视图属性和我将动态添加到gridview列中的控件。 – Mike 2009-09-17 13:39:51

+0

如果您使用的是已链接的代码示例,它似乎在此处为DynamicTemplate创建控件:mt.AddControl(t1,“Text”,“Sno”); 我怀疑你需要将它添加到页面的控件中,以便在回发中得到它 – 2009-09-17 14:15:02

+0

非常感谢你的帮助。 :) 我已经得到了答案。我忘了asp.net的生命周期。我已经在“PreRender”和“Unload”事件中获得了这些数据。 再次感谢您的参与。 :) – Mike 2009-09-17 14:26:28

0

我忘了asp.net的生命周期。我在GridView的“PreRender”和“Unload”事件中获取了这些数据,从那里我可以将其存储在其他位置。

+0

哪btw是我的提示;) – Juri 2009-09-17 15:46:08