• Gridview单元格编辑使用中注意问题


    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: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);
                    }
                }
            }
        }
  • 相关阅读:
    JAVA学习每日日报 7.6
    【刷题-LeetCode】203. Remove Linked List Elements
    【机器学习】树模型
    【刷题-LeetCode】202. Happy Number
    【刷题-LeetCode】201 Bitwise AND of Numbers Range
    【刷题-LeetCode】200 Number of Islands
    【刷题-LeetCode】199 Binary Tree Right Side View
    【刷题-LeetCode】198 House Robber
    从零学python——python的数据类型介绍
    从零学python——python的基本图形绘制以及基本语法
  • 原文地址:https://www.cnblogs.com/quanhai/p/1684883.html
Copyright © 2020-2023  润新知