我的前台内容是:
<asp:datagrid id="showrecord" runat="server" OnUpdateCommand="update_grid" OnCancelCommand="cancel_grid" oneditcommand="edit_grid" AutoGenerateColumns="False" CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CCCCCC" DataKeyField="id">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999"></SelectedItemStyle>
<EditItemStyle BackColor="#FFE0C0"></EditItemStyle>
<ItemStyle ForeColor="#000066" Width="0px"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="修改"></asp:EditCommandColumn>
<asp:TemplateColumn HeaderText="id">
<ItemTemplate>
<asp:label text='<%# container.dataitem("id") %>' Runat="server" Height="5px">
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox readonly =True id="id" runat="server" text='<%# container.dataitem("id") %>' width="35px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="uname">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("uname") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="uname" runat="server" text='<%# container.dataitem("uname") %>' width="69px"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="urealname">
<ItemTemplate>
<asp:label text = '<%# container.dataitem("urealname") %>' Runat =server />
</ItemTemplate>
<EditItemTemplate>
<asp:textbox width=100 id = "urealname" text = '<%# container.dataitem("urealname") %>' runat =server />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="upassword">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("upassword") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<Asp:TextBox runat="server" Height="96px" Width="427px" Text='<%# Container.DataItem("upassword") %>' Id="upassword"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="udepartment">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("udepartment") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="udepartment" runat="server" text='<%# container.dataitem("udepartment") %>' width="100">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="ismanager">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("ismanager") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="ismanager" runat="server" text='<%# container.dataitem("ismanager") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="isassistant">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("isassistant") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="isassistant" runat="server" text='<%# container.dataitem("isassistant") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="ispresident">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("ispresident") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="ispresident" runat="server" text='<%# container.dataitem("ispresident") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="isadmin">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("isadmin") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="isadmin" runat="server" text='<%# container.dataitem("isadmin") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
我的后台是:
Sub update_grid(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim uname As String = CType(e.Item.FindControl("uname"), TextBox).Text
Dim urealname As String = CType(e.Item.FindControl("urealname"), TextBox).Text
Dim upassword As String = CType(e.Item.FindControl("upassword"), TextBox).Text
Dim udepartment As String = CType(e.Item.FindControl("udepartment"), TextBox).Text
Dim ismanager As String = CType(e.Item.FindControl("ismanager"), TextBox).Text
Dim isassistant As String = CType(e.Item.FindControl("isassistant"), TextBox).Text
Dim ispresident As String = CType(e.Item.FindControl("ispresident"), TextBox).Text
Dim isadmin As String = CType(e.Item.FindControl("isadmin"), TextBox).Text
Dim strSQL As String
strSQL = "Update userlist Set uname = '" & uname & "',urealname = '" & urealname & "',upassword = '" & upassword & "',udepartment = '" & udepartment & "',ismanager = '" & ismanager & "',isassistant = '" & isassistant & "',ispresident = '" & ispresident & "',isadmin = '" & isadmin & "' Where " & showrecord.DataKeyField & "=" & _
showrecord.DataKeys(e.Item.ItemIndex)
ExecuteSQL(strSQL)
showrecord.EditItemIndex = -1
BindList()
End Sub
<asp:datagrid id="showrecord" runat="server" OnUpdateCommand="update_grid" OnCancelCommand="cancel_grid" oneditcommand="edit_grid" AutoGenerateColumns="False" CellPadding="3" BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CCCCCC" DataKeyField="id">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#669999"></SelectedItemStyle>
<EditItemStyle BackColor="#FFE0C0"></EditItemStyle>
<ItemStyle ForeColor="#000066" Width="0px"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#006699"></HeaderStyle>
<FooterStyle ForeColor="#000066" BackColor="White"></FooterStyle>
<Columns>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" CancelText="取消" EditText="修改"></asp:EditCommandColumn>
<asp:TemplateColumn HeaderText="id">
<ItemTemplate>
<asp:label text='<%# container.dataitem("id") %>' Runat="server" Height="5px">
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox readonly =True id="id" runat="server" text='<%# container.dataitem("id") %>' width="35px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="uname">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("uname") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="uname" runat="server" text='<%# container.dataitem("uname") %>' width="69px"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="urealname">
<ItemTemplate>
<asp:label text = '<%# container.dataitem("urealname") %>' Runat =server />
</ItemTemplate>
<EditItemTemplate>
<asp:textbox width=100 id = "urealname" text = '<%# container.dataitem("urealname") %>' runat =server />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="upassword">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("upassword") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<Asp:TextBox runat="server" Height="96px" Width="427px" Text='<%# Container.DataItem("upassword") %>' Id="upassword"/>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="udepartment">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("udepartment") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="udepartment" runat="server" text='<%# container.dataitem("udepartment") %>' width="100">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="ismanager">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("ismanager") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="ismanager" runat="server" text='<%# container.dataitem("ismanager") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="isassistant">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("isassistant") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="isassistant" runat="server" text='<%# container.dataitem("isassistant") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="ispresident">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("ispresident") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="ispresident" runat="server" text='<%# container.dataitem("ispresident") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="isadmin">
<ItemTemplate>
<asp:label Runat="server" text='<%# container.dataitem("isadmin") %>'>
</asp:label>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox id="isadmin" runat="server" text='<%# container.dataitem("isadmin") %>' width="30px">
</asp:textbox>
</EditItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="#000066" BackColor="White" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
我的后台是:
Sub update_grid(ByVal sender As Object, ByVal e As DataGridCommandEventArgs)
Dim uname As String = CType(e.Item.FindControl("uname"), TextBox).Text
Dim urealname As String = CType(e.Item.FindControl("urealname"), TextBox).Text
Dim upassword As String = CType(e.Item.FindControl("upassword"), TextBox).Text
Dim udepartment As String = CType(e.Item.FindControl("udepartment"), TextBox).Text
Dim ismanager As String = CType(e.Item.FindControl("ismanager"), TextBox).Text
Dim isassistant As String = CType(e.Item.FindControl("isassistant"), TextBox).Text
Dim ispresident As String = CType(e.Item.FindControl("ispresident"), TextBox).Text
Dim isadmin As String = CType(e.Item.FindControl("isadmin"), TextBox).Text
Dim strSQL As String
strSQL = "Update userlist Set uname = '" & uname & "',urealname = '" & urealname & "',upassword = '" & upassword & "',udepartment = '" & udepartment & "',ismanager = '" & ismanager & "',isassistant = '" & isassistant & "',ispresident = '" & ispresident & "',isadmin = '" & isadmin & "' Where " & showrecord.DataKeyField & "=" & _
showrecord.DataKeys(e.Item.ItemIndex)
ExecuteSQL(strSQL)
showrecord.EditItemIndex = -1
BindList()
End Sub
解决方案 »
- C# List数组++
- 数据绑定的问题
- 如何读取数据库数据类型为二进制的字段的值
- 我做的一个网站,空间提供商说我的网站把数据库资源独占了要求我用联结串的方式联数据库,不用数据源
- 请给我解释一下下面的关于GridView的OnSqlUpdating方法和OnSqlUpdated方法的语句:
- Repeater挷定数据源 如果没有记录时 如何在表格中显示无记录?
- 初学者的一个小问题
- 用asp.net连access数据库后怎么一updata就出错呢???请教
- .net 用npoi 怎么实现将excel数据导入gridview?
- 在线等侍,解决后马上给分!!
- 请大家帮我一下:怎样把第一个页面的ID传到第二个页面?谢谢!!
- 在线求救:vs2005 beta2下Web应用程序不能在ie下访问的问题
......
前台程序:
<asp:datagrid id="DataGrid1" runat="server" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px"
BackColor="White" CellPadding="4" GridLines="Vertical" ForeColor="Black" AutoGenerateColumns="False" AllowPaging="True" DataKeyField="menuid" Width="100%" PageSize="15">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#CE5D5A"></SelectedItemStyle>
<AlternatingItemStyle BackColor="White"></AlternatingItemStyle>
<ItemStyle BackColor="#F7F7DE"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="#6B696B"></HeaderStyle>
<FooterStyle BackColor="#CCCC99"></FooterStyle>
<Columns>
<asp:TemplateColumn>
<HeaderStyle Width="25px"></HeaderStyle>
<HeaderTemplate>
<b>BigID </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "mainid") %>' runat="server" ID="Label1"/>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "mainid") %>' runat="server" ID="Textbox1" Width=25 />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="25px"></HeaderStyle>
<HeaderTemplate>
<b>SmallID </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "subid") %>' runat="server" ID="Label2"/>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "subid") %>' runat="server" ID="Textbox2" Width=25 />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="60px"></HeaderStyle>
<HeaderTemplate>
<b>目录名称 </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' runat="server" ID="Label3"/>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "name") %>' runat="server" ID="textbox3" Width=60 />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="150px"></HeaderStyle>
<HeaderTemplate>
<b>目录说明 </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "description") %>' runat="server" ID="Label4"/>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "description") %>' runat="server" ID="Textbox4" Width=150 />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Width="150px"></HeaderStyle>
<HeaderTemplate>
<b>目录链接 </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "url") %>' runat="server" ID="Label5"/>
</ItemTemplate>
<EditItemTemplate>
<asp:textbox Text='<%# DataBinder.Eval(Container.DataItem, "url") %>' runat="server" ID="Textbox5" Width=150 />
</EditItemTemplate>
</asp:TemplateColumn>
<asp:EditCommandColumn ButtonType="LinkButton" UpdateText="更新" HeaderText="编辑" CancelText="取消" EditText="编辑">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:EditCommandColumn>
<asp:ButtonColumn Text="删除" HeaderText="删除" CommandName="Delete">
<HeaderStyle Width="50px"></HeaderStyle>
</asp:ButtonColumn>
</Columns>
<PagerStyle HorizontalAlign="Right" ForeColor="Black" BackColor="#F7F7DE" Mode="NumericPages"></PagerStyle>
</asp:datagrid>
后台代码
Sub DataGrid1_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.UpdateCommand
Dim name As TextBox
Dim txt_name As String = CType(e.Item.FindControl("textbox3"), TextBox).Text
Dim str_mainid As Integer = CInt(CType(e.Item.Cells(0).Controls(1), TextBox).Text)
Dim str_subid As Integer = CInt(CType(e.Item.Cells(1).Controls(1), TextBox).Text)
Dim str_name As String = CType(e.Item.Cells(2).Controls(1), TextBox).Text
Dim str_secription As String = CType(e.Item.Cells(3).Controls(1), TextBox).Text
Dim str_url As String = CType(e.Item.Cells(4).Controls(1), TextBox).Text
Dim index As Integer = e.Item.ItemIndex
Dim id As Integer = CInt(DataGrid1.DataKeys(index))
Dim ds As SQLDB = New SQLDB '用自定义类定义数据dataset对象
Dim sqlstr As String = "update ad_menu set mainid=" & str_mainid & ",subid=" & str_subid & ",name='" & str_name & "',description='" & str_secription & "',url='" & str_url & "' where menuid=" & id & ""
ds.strSQL = sqlstr '给数据对象赋值sql语句
'sqlstr &= Request("textbox3")
lblMessage.Text = sqlstr '给前台label对象赋值,检验sql正确性
ds.ExecuteSQL() '执行数据更新
DataGrid1.EditItemIndex = -1
dgBind() '重新绑定数据表
End Sub以上在单击update按键时,sql语句显示取得textbox的值如str_name,str_mainid,str_subid等都是更新前的值。请问题出在哪里?