高分收购 datagrid 的viewstate属性的应用的VB代码!!!! 急!!!!

imports 2002-09-06 11:31:50
一个datagrid控件,里面嵌套了1个textbox子控件。
datagrid控件外面有一个button控件,
我要通过点击button一下,给datagrid控件
添加一行!!!
我再点击button控件一下,datagrid再添加一行!!!
只有我点击button,datagrid控件就会在原来的基础上增加一行!!!

当我点击button时,datagrid可以增加一行!!!但是datagrid里面的textbox的内容给清空了!!(怎样使它们不清空呢?)
而且我要datagrid保存上一次点击的datagrid时各行的状况!!!(各行的textbox的内容!!!)!!!
听说viewstate可以保存控件的各项属性!!!你有其他方法可以实现我的要求吗?
急!!!!!谢谢!!(重赏!!!)
...全文
52 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
imports 2002-09-10
  • 打赏
  • 举报
回复
真心多谢icyer()大哥的作品!!!

我的问题得到解决!!!

谢谢!!谢谢各位大哥对我的问题的关注和帮忙!!谢谢!!鼓掌!!! ^_^
icyer 2002-09-06
  • 打赏
  • 举报
回复
不太好用ViewState来保存DataGrid里面的TextBox,或许可以把这些值都保存入一个DataTable,最后才一起更新。
有一点需要注意,DataGrid只能有一行处于编辑状态。
iStringTheory 2002-09-06
  • 打赏
  • 举报
回复
http://www.microsoft.com/china/msdn/library/dnaspnet/html/Asp11222001.asp
saucer 2002-09-06
  • 打赏
  • 举报
回复
a suggestion:
in your Add button event handler, iterate through your datagrid's Items collection, find the textbox control, update the value in the corresponding DataTable, then call DataBind(). In this case, do not call DataBind() in Page_Load

Dim temp as String
Dim i As Int32
For i = 0 To DataGrid1.Items.Count - 1
temp = CType(DataGrid1.Items(i).Cells(0).Controls
(0), System.Web.UI.WebControls.TextBox).Text

'update your corresponding table data here
Next
....




microsoft_net 2002-09-06
  • 打赏
  • 举报
回复
关注,帮你up
大健 2002-09-06
  • 打赏
  • 举报
回复
up
w18ily 2002-09-06
  • 打赏
  • 举报
回复
ViewState 的工作原理
  ViewState是一种机制,ASP.NET 使用这种机制来跟踪服务器控件状态值,否则这些值将不作为 HTTP 窗体的一部分而回传。例如,由 Label 控件显示的文本默认情况下就保存在 ViewState 中。作为开发人员,您可以绑定数据,或在首次加载该页面时仅对 Label 编程设置一次,在后续的回传中,该标签文本将自动从 ViewState 中重新填充。因此,除了可以减少繁琐的工作和代码外,ViewState 通常还可以减少数据库的往返次数。
  ViewState 确实没有什么神秘之处,它是由 ASP.NET 页面框架管理的一个隐藏的窗体字段。当 ASP.NET 执行某个页面时,该页面上的 ViewState 值和所有控件将被收集并格式化成一个编码字符串,然后被分配给隐藏窗体字段的值属性(即 <input type=hidden>)。由于隐藏窗体字段是发送到客户端的页面的一部分,所以 ViewState 值被临时存储在客户端的浏览器中。如果客户端选择将该页面回传给服务器,则 ViewState 字符串也将被回传。在上面的图 2 中可以看到 ViewState 窗体字段及其回传的值。
  回传后,ASP.NET 页面框架将解析 ViewState 字符串,并为该页面和各个控件填充 ViewState 属性。然后,控件再使用 ViewState 数据将自己重新恢复为以前的状态。



关于 ViewState 还有三个值得注意的小问题。
  如果要使用 ViewState,则在 ASPX 页面中必须有一个服务器端窗体标记 (<form runat=server>)。窗体字段是必需的,这样包含 ViewState 信息的隐藏字段才能回传给服务器。而且,该窗体还必须是服务器端的窗体,这样在服务器上执行该页面时,ASP.NET 页面框架才能添加隐藏的字段。
页面本身将 20 字节左右的信息保存在 ViewState 中,用于在回传时将 PostBack 数据和 ViewState 值分发给正确的控件。因此,即使该页面或应用程序禁用了 ViewState,仍可以在 ViewState 中看到少量的剩余字节。
在页面不回传的情况下,可以通过省略服务器端的 <form> 标记来去除页面中的 ViewState。



充分利用 ViewState
  ViewState 为跨回传跟踪控件的状态提供了一条神奇的途径,因为它不使用服务器资源、不会超时,并且适用于任何浏览器。如果您要编写控件,那么肯定需要了解如何在控件中维护状态(英文)。
  开发人员在编写页面时同样可以按照几乎相同的方式来利用 ViewState,只是有时页面会包含不由控件存储的 UI 状态值。您可以跟踪 ViewState 中的值,使用的编程语法与会话和高速缓存的语法类似:

62,269

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧