<Columns>
<asp:TemplateColumn Visible="False" HeaderText="id">
<HeaderStyle Width="30%"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblID" Text="<%# Container.DataItem(0) %>" Runat="server">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="所属区" SortExpression="district">
<HeaderStyle Width="30%"></HeaderStyle>
<ItemTemplate>
<asp:Label id=lblDistrict Text="<%# Container.DataItem(1) %>" Runat="server">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=txtDistrict Text="<%# Container.DataItem(1) %>" Runat="server">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="name" HeaderText="名称">
<HeaderStyle Width="40%"></HeaderStyle>
<ItemTemplate>
<asp:Label ID="lblName" Runat="server" Text='<%# Container.DataItem(2) %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtName" Runat="server" Text='<%# Container.DataItem(2) %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="修改">
<HeaderStyle Width="15%"></HeaderStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="<div onclick="return confirm('您真的要删除该条信息吗?')">删除</div>" CommandName="Delete">
<HeaderStyle Width="15%"></HeaderStyle>
</asp:ButtonColumn>
</Columns>
上面是dataGrid里的列,id列是隐藏的,所属区和名称是可以修改的列,现在修改完后点击“更新”按钮,获得的textBox值仍然是修改前所绑定的值。UpdateCommand()事件如下:
Private Sub dbGridfwt_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dbGridfwt.UpdateCommand
Dim s_id As String
Dim strSql, sName, sDistrict As String
Dim resultID As Integer s_id = CType(e.Item.Cells(0).Controls(1), Label).Text
sDistrict = CType(e.Item.Cells(1).Controls(1), TextBox).Text
sName = CType(e.Item.Cells(2).Controls(1), TextBox).Text
If Trim(sDistrict) = "" Or Trim(sName) = "" Then
Exit Sub
End If
………………
dbGridfwt.EditItemIndex = -1
dbGridfwt.DataBind()
End Sub
如何才能获得输入的新值呢??
<asp:TemplateColumn Visible="False" HeaderText="id">
<HeaderStyle Width="30%"></HeaderStyle>
<ItemTemplate>
<asp:Label id="lblID" Text="<%# Container.DataItem(0) %>" Runat="server">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="所属区" SortExpression="district">
<HeaderStyle Width="30%"></HeaderStyle>
<ItemTemplate>
<asp:Label id=lblDistrict Text="<%# Container.DataItem(1) %>" Runat="server">
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox id=txtDistrict Text="<%# Container.DataItem(1) %>" Runat="server">
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn SortExpression="name" HeaderText="名称">
<HeaderStyle Width="40%"></HeaderStyle>
<ItemTemplate>
<asp:Label ID="lblName" Runat="server" Text='<%# Container.DataItem(2) %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox ID="txtName" Runat="server" Text='<%# Container.DataItem(2) %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="修改">
<HeaderStyle Width="15%"></HeaderStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="<div onclick="return confirm('您真的要删除该条信息吗?')">删除</div>" CommandName="Delete">
<HeaderStyle Width="15%"></HeaderStyle>
</asp:ButtonColumn>
</Columns>
上面是dataGrid里的列,id列是隐藏的,所属区和名称是可以修改的列,现在修改完后点击“更新”按钮,获得的textBox值仍然是修改前所绑定的值。UpdateCommand()事件如下:
Private Sub dbGridfwt_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dbGridfwt.UpdateCommand
Dim s_id As String
Dim strSql, sName, sDistrict As String
Dim resultID As Integer s_id = CType(e.Item.Cells(0).Controls(1), Label).Text
sDistrict = CType(e.Item.Cells(1).Controls(1), TextBox).Text
sName = CType(e.Item.Cells(2).Controls(1), TextBox).Text
If Trim(sDistrict) = "" Or Trim(sName) = "" Then
Exit Sub
End If
………………
dbGridfwt.EditItemIndex = -1
dbGridfwt.DataBind()
End Sub
如何才能获得输入的新值呢??
解决方案 »
- 软件在IE挺好,但是在FF上居中全部变成了左对齐,怎么在FF上也实现居中?
- !!!!!!!!!在asp.net中如何把.swf格式的flash图片作为背景图片
- 用js调用后代代码!急!
- 求助,后台生成的checkboxlist的ID变成用FindControl找不到~~
- 在操作Excel 时如何导入Excel的一些库(Microsoft)的啊
- 一个有关字符串的问题搞不定,大家帮忙啊,急!在线等啊
- 诡异的异常(一)System.NullReferenceException
- 关于CodematicDemoS3代码的问题
- 请问一个网站发布的问题!急!谢谢!
- 用OleDb怎样创建access表的sql怎样?
- 哪里有下载类似WinForm里面的TabControl的控件?
- using System.Configuration.Install;出错
最好不要这样用
用FindControls来查找控件~
在你的Page_Load里面
加上条件
if not Page.IsPostBack then //绑定你的Grid
end if
你填写完之后,页面PostBack
重新绑定数据
就把你新填写的冲掉了
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If IsPostBack Then
dbTable = Session("dbTable")
dbView = Session("dbView")
dbGridfwt.DataSource = dbView
dbGridfwt.DataBind()
end if这样不行么?
用FindControls怎么查找dataGrid里的控件呢?
你从session里面获取到的值,还是你没有修改过的初始值,效果是一样的!Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If not IsPostBack Then
dbGridfwt.DataSource = 获取你的数据源
dbGridfwt.DataBind()
end if
If not IsPostBack Then 不是只在页面第一次启动的时候执行么?点击更新按钮它应该走 ispostback里呀
然后你的程序就从session里面获取数据源
重新给grid绑定
那么不是也一样冲掉了你新填写的值吗?
If not IsPostBack Then
dbGridfwt.DataSource = 获取你的数据源
dbGridfwt.DataBind()
end if上面不是写了吗?
'在此处放置初始化页的用户代码
Dim strsql As String If Not IsPostBack Then
strsql = "select * from TB_FW_service order by s_district,s_id"
getQuery(strsql)
dbGridfwt.DataSource = objReader
dbGridfwt.DataBind()
End If
End Sub是这样的吗?可我点修改之后dataGrid就一片空白了呀,还要加什么东西么?
dbGridfwt.DataSource = objReader
是什么意思?
你根本没有获取到数据吧?
第一次加载是这样子的:
If Not IsPostBack Then
dbopen()
strsql = "select s_id,s_district from TB_FW_service order by s_district,s_id"
getQuery(strsql)
dbTable.Columns.Add("id", Type.GetType("System.Int16"))
dbTable.Columns.Add("district", Type.GetType("System.String"))
dbTable.Columns.Add("name", Type.GetType("System.String")) While objReader.Read
dbRow = dbTable.NewRow()
dbRow("id") = objReader("s_id")
dbRow("district") = objReader("s_district")
dbRow("name") = objReader("s_district")
dbTable.Rows.Add(dbRow)
End While dbView = New DataView(dbTable)
dbGridfwt.DataSource = dbView
dbGridfwt.DataBind()
objReader.Close()
dbclose()
End If
我觉得