无法取得修改后的textbox中的值。取得的值还是原前一个页面传过来的值,修改后的值无法取得。*****高分求解,希望能快点结贴!*****//单出browse.aspx页面中dataGrid中的某一行,进入编辑页面--Edit.aspx******Edit.aspx******* Dim Id As IntegerPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not IsPostBack Then
Id = Request.QueryString("reId") // 从上browse.aspx页面取得序号值reid赋给全局变量Id,假设我点击第6行,则id值为5。目前为止正常!
End If
End Sub//修改完成单击提交按钮
Private Sub bSubmitClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSubmit.Click
Dim strSql As String = "select * from coAsset"
Dim strDsn As String = "Persist Security Info=False;User ID=sa;Initial Catalog=xfData;Data Source=localhost"
Dim Da As SqlDataAdapter
Dim Ds As DataSet = New DataSet
Dim dt As DataTable
Dim keys(1) As DataColumn
Da = New SqlDataAdapter(strSql, strDsn)
Da.Fill(Ds, "table1")
dt = Ds.Tables("table1")
Dim rowAdd As DataRow
keys(0) = dt.Columns(0)
dt.PrimaryKey = keys
rowAdd = dt.Rows.Find(Id) //问题在这里,这里的Id的值为“0”,而非上面我要的“5”。请兄弟帮帮忙!!!
.....
End Sub
If Not IsPostBack Then
Id = Request.QueryString("reId") // 从上browse.aspx页面取得序号值reid赋给全局变量Id,假设我点击第6行,则id值为5。目前为止正常!
End If
End Sub//修改完成单击提交按钮
Private Sub bSubmitClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSubmit.Click
Dim strSql As String = "select * from coAsset"
Dim strDsn As String = "Persist Security Info=False;User ID=sa;Initial Catalog=xfData;Data Source=localhost"
Dim Da As SqlDataAdapter
Dim Ds As DataSet = New DataSet
Dim dt As DataTable
Dim keys(1) As DataColumn
Da = New SqlDataAdapter(strSql, strDsn)
Da.Fill(Ds, "table1")
dt = Ds.Tables("table1")
Dim rowAdd As DataRow
keys(0) = dt.Columns(0)
dt.PrimaryKey = keys
rowAdd = dt.Rows.Find(Id) //问题在这里,这里的Id的值为“0”,而非上面我要的“5”。请兄弟帮帮忙!!!
.....
End Sub
解决方案 »
- 问题:ListView内嵌ListView实现分层显示数据
- 搜索功能
- 赋予 类型 'varchar' 的大小(9545)超过了任意数据类型的最大允许值(8000) 如何处理??
- javascript为什么会提示缺少对象
- 怎样才能实现“当数据库数据更新时,调用web程序并将其显示出来”这种效果?(100分)
- background 页面的怎么动态控制?
- 用Repeater控件或DataList控件显示主-从关系数据表时,如何实现查询功能?
- 晕啊,我IE“另存为”,发现可以保存自己WEB工程的.ASPX文件?
- 怎么把SqlDataReader中的数据加到缓存中?
- 谁能帮我找到这个模块???
- 论坛回复帖子自动识别网址加上链接怎么做?
- 为什么在服务器端添加Attributes.Add不能触发javascript?
拿到If Not IsPostBack Then
外边
Id = Request.QueryString("reId") // 从上browse.aspx页面取得序号值reid赋给全局变量Id,假设我点击第6行,则id值为5。目前为止正常!
End Sub
Id = Request.QueryString("reId") // 从上browse.aspx页面取得序号值reid赋给全局变量Id,假设我点击第6行,则id值为5。目前为止正常!
End Sub说明,由于页面刷新不保存变量,所以每次刷新都要给变量Id赋值!
rowAdd = dt.Rows.Find(Sessopm("Id")) 用session保留值..你所说的那个Id并非全局变量.它在一定范围内有效..
在你出错那里。它是无效的.所以为0你注意下语法.我习惯写c#
上面的
Session("Id") = Request.QueryString("reId")
把Sessopm改成Session,是用Session保持值的..上面第一行手快打错了...
用session保持值就行了.
拿到If Not IsPostBack Then
外边
或将 Id设为 static
即 设为静态变量,会存住值的
放到If Not IsPostBack Then外面就可以了原因是按钮事件是在postback后才会触发,但是这时由于If Not IsPostBack Then....所以id就取不到值了
按照 guying999的方法,dt.rows.Find(id)中的id是能得到5,但:Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Id = Request.QueryString("reId")
tbName.Text = Request.QueryString("reName") // 这是从上browse.aspx页面DataGrid控件上单击某行取得的该行reName字段的值,比如是“thbird",现在我把它赋给tbName(textbox控件)的.text属性。
End Sub//现在我想修改tbName.text中的值,把它改成“thbird12”,修改完成单击提交按钮:
Private Sub bSubmitClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bSubmit.Click
Dim strSql As String = "select * from coAsset"
Dim strDsn As String = "Persist Security Info=False;User ID=sa;Initial Catalog=xfData;Data Source=localhost"
Dim Da As SqlDataAdapter
Dim Ds As DataSet = New DataSet
Dim dt As DataTable
Dim keys(1) As DataColumn
Da = New SqlDataAdapter(strSql, strDsn)
Da.Fill(Ds, "table1")
dt = Ds.Tables("table1")
Dim rowAdd As DataRow
keys(0) = dt.Columns(0)
dt.PrimaryKey = keys
rowAdd = dt.Rows.Find(Id)
rowAdd("name") = tbName.text // 问题出来了,由于按提交按钮时,程序又会重新执行一遍page_load过程,导致tbName.text的值又恢复成“thbird”,而非我想要的“thbird12”。我想问问各位大哥,除了用session,还有其它解决方法吗?
.....
End Sub
ViewState("id") = Request.QueryString("reId") // 从上browse.aspx页面取得序号值reid赋给全局变量Id,假设我点击第6行,则id值为5。目前为止正常!
End If
Dim strSql As String = "select * from coAsset"
Dim strDsn As String = "Persist Security Info=False;User ID=sa;Initial Catalog=xfData;Data Source=localhost"
Dim Da As SqlDataAdapter
Dim Ds As DataSet = New DataSet
Dim dt As DataTable
Dim keys(1) As DataColumn
Da = New SqlDataAdapter(strSql, strDsn)
Da.Fill(Ds, "table1")
dt = Ds.Tables("table1")
Dim rowAdd As DataRow
keys(0) = dt.Columns(0)
dt.PrimaryKey = keys
rowAdd = dt.Rows.Find(ViewState("id"))
rowAdd("name") = tbName.text // 问题出来了,由于按提交按钮时,程序又会重新执行一遍page_load过程,导致tbName.text的值又恢复成“thbird”,而非我想要的“thbird12”。我想问问各位大哥,除了用session,还有其它解决方法吗?
.....
End Sub
rowAdd = dt.Rows.Find(Request.QueryString("reId"))
Request.QueryString是不用担心刷新就丢了的问题