Gridview单元格编辑使用中注意问题
2010-03-13 02:39
375 查看
1.数据库中务必设置主键,才可以使用SqlDataSource的高级配置,必须注意在相连的gridview中加
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand" OnRowUpdating="GridView1_RowUpdating" DataKeyNames="numID"> 为了找出DataKeyNames="numID”这个错误,花费了整整2个小时。终于找到数据修改后为什么没有更新 2.SqlDataSource设置
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand" OnRowUpdating="GridView1_RowUpdating" DataKeyNames="numID"> 为了找出DataKeyNames="numID”这个错误,花费了整整2个小时。终于找到数据修改后为什么没有更新 2.SqlDataSource设置
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:jingluoConnectionString %>" SelectCommand="SELECT [numID], [symptom], [userName], [bodypart] FROM [Symptom] WHERE (([userName] = @userName) AND ([bodypart] = @bodypart))" DeleteCommand="DELETE FROM [Symptom] WHERE [numID] = @numID" InsertCommand="INSERT INTO [Symptom] ([symptom], [userName], [bodypart]) VALUES (@symptom, @userName, @bodypart)" UpdateCommand="UPDATE [Symptom] SET [symptom] = @symptom WHERE [numID] = @numID" > <SelectParameters> <asp:SessionParameter DefaultValue="小明" Name="userName" SessionField="username" Type="String" /> <asp:ControlParameter ControlID="TextBox1" DefaultValue="头部" Name="bodypart" PropertyName="Text" Type="String" /> </SelectParameters> <UpdateParameters> <asp:Parameter Name="symptom" Type="String" /> <asp:Parameter Name="userName" Type="String" /> <asp:Parameter Name="bodypart" Type="String" /> <asp:Parameter Name="numID" Type="Int32" /> </UpdateParameters> <DeleteParameters> <asp:Parameter Name="numID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="symptom" Type="String" /> <asp:Parameter Name="userName" Type="String" /> <asp:Parameter Name="bodypart" Type="String" /> </InsertParameters> </asp:SqlDataSource>
3.有关在后台修改中的代码
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { GridView _gridView = (GridView)sender; string key = ""; string value = ""; // NewValues集合里的key string[] _columnKeys = new string[] { "LastName", "FirstName", "Country" }; if (e.RowIndex > -1) { // 循环每一列 //for (int i = _firstEditCellIndex; i < _gridView.Columns.Count; i++) { // 获得单元格里的控件 Control _displayControl = _gridView.Rows[e.RowIndex].Cells[2].Controls[1]; Control _editControl = _gridView.Rows[e.RowIndex].Cells[2].Controls[3]; // 获得列的key key = _columnKeys[2 - _firstEditCellIndex]; // 如果单元格处于编辑模式的话,那么从编辑控件中获取值 if (_editControl.Visible) { if (_editControl is TextBox) { value = ((TextBox)_editControl).Text; } else if (_editControl is DropDownList) { value = ((DropDownList)_editControl).SelectedValue; } // 增加key/value对到NewValues集合 e.NewValues.Add(key, value); } // 否则从显示控件中获取值 else { value = ((Label)_displayControl).Text.ToString(); // 增加key/value对到NewValues集合 e.NewValues.Add(key, value); } } } }
相关文章推荐
- Asp.net的GridView控件实现单元格可编辑方便用户使用
- 遇到的问题------Asp.net使用GridView的编辑修改功能回发无效
- gridview 编辑状态下的列表框(DropDownList)使用注意
- [导入]在GridView中使用三目运算符应注意的问题
- gridview 编辑状态下的列表框(DropDownList)使用注意
- GridView使用DataKeyNames的例子 & CommandArgument传递多个参数 & 获取GridView编辑状态下单元格里的值
- 在GridView中使用三目运算符应注意的问题
- 使用Openlayer利用GeoServer编辑要素到postGIS注意问题(WFS-T)
- Asp.net的GridView控件实现单元格可编辑方便用户使用
- 遇到的问题------Asp.net使用GridView的编辑修改功能回发无效
- GridView使用DataKeyNames的例子 & CommandArgument传递多个参数 & 获取GridView编辑状态下单元格里的值
- Android Context 使用时注意内存泄漏问题
- 关于接口的定义和使用,几点需要注意的问题
- For all entries使用中注意的问题
- VS2010编译器在命令行下使用注意的问题
- python 多线程 join 的 细节问题 注意使用事项
- 教你发布Silverlight Bussiness Application(SQL Server 登录,局域网访问,以及使用ArcGIS Server服务需要注意的问题)
- 使用SpringMVC时,配置DispatcherServlet注意的url-pattern的问题
- SQL 在使用组合函数删除记录时要注意的问题
- 使用adjacent_difference要注意的小问题