Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 修改GridView后,BulkEditGridView DirtyRows计数为0_C#_Asp.net_Gridview - Fatal编程技术网

C# 修改GridView后,BulkEditGridView DirtyRows计数为0

C# 修改GridView后,BulkEditGridView DirtyRows计数为0,c#,asp.net,gridview,C#,Asp.net,Gridview,我使用的BulkEditGridView控件(继承GridView)位于以下位置: 现在,我有一个保存按钮,当它被点击时,应该只列出所有修改的项目,但是我得到的是“没有更新”。即使我更改了数据网格中的文本。为什么DirtyRows不能正确填充?在更新数据库之前,我正在对此进行测试 我的aspx页面看起来像: <rwg:BulkEditGridView ID="EditableGrid" AutoGenerateColumns="False" OnRowUpdating="EditableG

我使用的BulkEditGridView控件(继承GridView)位于以下位置:

现在,我有一个保存按钮,当它被点击时,应该只列出所有修改的项目,但是我得到的是“没有更新”。即使我更改了数据网格中的文本。为什么DirtyRows不能正确填充?在更新数据库之前,我正在对此进行测试

我的aspx页面看起来像:

<rwg:BulkEditGridView ID="EditableGrid" AutoGenerateColumns="False" OnRowUpdating="EditableGrid_RowUpdating" OnRowEditing="EditRecord" SaveButtonID="SaveButton" runat="server">
            <Columns>
                <asp:BoundField HeaderText="Question" DataField="Question" />
                <asp:BoundField HeaderText="A" DataField="a" />
                <asp:BoundField HeaderText="B" DataField="b" />
                <asp:BoundField HeaderText="C" DataField="c" />
                <asp:BoundField HeaderText="D" DataField="d" />
                <asp:BoundField HeaderText="E" DataField="e" />
                <asp:BoundField HeaderText="F" DataField="f" />
                <asp:BoundField HeaderText="Correct Answer" DataField="CorrectAns" />
                <asp:CheckBoxField HeaderText="Shuffle Answers" DataField="ShuffleAnswers" />
                <asp:BoundField HeaderText="Course Objective" DataField="CourseObjective" />                    
            </Columns>
        </rwg:BulkEditGridView>

}我忘了创建EditRecord方法。应该是这样的:

public partial class editExam : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
    string courseCode = "";
    courseCode = Request.QueryString["code"];

    if (courseCode.Length > 0)
    {
        //Show all of the course questions.
        Connection conn = new Connection();
        SqlParameter p = new SqlParameter("@CourseCode", SqlDbType.VarChar, 10);
        p.Value = Connection.validateString(courseCode);
        conn.close();
        //Gets the exam to display from the database
        DataTable dt = conn.query("getExam", p);
        if (dt.Rows.Count == 0)
        {
            //Display an error message
            displayError();
        }
        else
        {
            //Show all courses
            buildPage(dt);
        }
    }
    else
    {
        //Display an error message
        displayError();
    }
}

private void buildPage(DataTable dt)
{
    EditableGrid.DataSource = dt;
    EditableGrid.DataBind();
}
protected void SaveButton_Click(object sender, EventArgs e)
{
    if (EditableGrid.DirtyRows.Count == 0)
    {
        pageContent.InnerHtml = "No updates have been made.";
    }
}

protected void EditableGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    StringBuilder rowIndexes = new StringBuilder();
    foreach (GridViewRow row in EditableGrid.DirtyRows)
    {
        rowIndexes.Append((row.RowIndex + 1) + ", ");
    }

    pageContent.InnerHtml = "updates made to: " + rowIndexes.ToString();
}
protected void EditRecord(object sender, GridViewEditEventArgs e)
{
    EditableGrid.EditIndex = e.NewEditIndex;
    buildPage();
}
我还阅读了这篇文章:它解释了如何正确使用GridView控件

这也很有用:对于行更新方法: