Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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的select命令?_C#_Asp.net_Gridview_Webforms - Fatal编程技术网

C# 如何在编辑模式下保留gridview的select命令?

C# 如何在编辑模式下保留gridview的select命令?,c#,asp.net,gridview,webforms,C#,Asp.net,Gridview,Webforms,我有一个gridview,它允许用户根据单选按钮列表值在StandardView、basic select*from表和CurrentView之间更改gridview select命令。此查询显示当前所有项目的列表。在加载表单之前,我已公开声明了这两个字符串。当用户单击“编辑”时,gridview会进行回发,将其发送回标准视图 这是我的数据表: private DataTable GetData(SqlCommand cmd) { DataTable dt = new DataTable

我有一个gridview,它允许用户根据单选按钮列表值在StandardView、basic select*from表和CurrentView之间更改gridview select命令。此查询显示当前所有项目的列表。在加载表单之前,我已公开声明了这两个字符串。当用户单击“编辑”时,gridview会进行回发,将其发送回标准视图

这是我的数据表:

private DataTable GetData(SqlCommand cmd)
{
    DataTable dt = new DataTable();
    SqlConnection con = new SqlConnection(conn);
    SqlDataAdapter sda = new SqlDataAdapter();
    cmd.CommandType = CommandType.Text;
    cmd.Connection = con;
    con.Open();
    sda.SelectCommand = cmd;
    sda.Fill(dt);
    return dt;
    con.Close();
}
这是我的在线编辑

编辑

我想包括我的formload、BindData和一个名为RetainEditSelect的新方法,以便添加你们给我的建议。我仍然没有取得任何成功

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           BindData();
           RetainEditSelect(); 
        }

    }

    private void BindData()
    {
        //String for Main GridView
        string strMainQuery = StandardView;
        SqlCommand cmdMain = new SqlCommand(strMainQuery);
        switch (rblChooseEditView.SelectedValue)
        {
            case "1":
                strMainQuery = StandardView;
                gvMainView.DataSource = GetData(cmdMain);
                gvMainView.DataBind();
                break;

            case "2":
                strMainQuery = CurrentView;
                gvMainView.DataSource = GetData(cmdMain);
                gvMainView.DataBind();
                break;
        }
    }  
这是我的新方法

    private void RetainEditSelect()
    {
        using (SqlConnection con = new SqlConnection(conn))
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            string EditView = StandardView;
            switch (rblChooseEditView.SelectedValue)
            {
                case "1":
                    EditView = StandardView;
                    cmd.CommandText = EditView;
                    BindData();
                    break;

                case "2":
                    EditView = CurrentView;
                    cmd.CommandText = EditView;
                    BindData();
                    break;
            }
        }         

    }

连接在哪里。关闭???对连接和命令使用“using”语句。然后在页面加载事件中发布代码。我回应Azhar所说的。我打赌页面加载不会检查IsPostBack,因此在每次页面加载时,GridView都会返回到标准模式。我进行了建议的更改,但没有进行任何更改。正在检查回发邮件。此外,我正在使用添加、删除和更新添加和删除保留命令的开关。我想我可以用同样的方式来编辑,但是他们的内容似乎更丰富。
    private void RetainEditSelect()
    {
        using (SqlConnection con = new SqlConnection(conn))
        {
            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.Text;
            string EditView = StandardView;
            switch (rblChooseEditView.SelectedValue)
            {
                case "1":
                    EditView = StandardView;
                    cmd.CommandText = EditView;
                    BindData();
                    break;

                case "2":
                    EditView = CurrentView;
                    cmd.CommandText = EditView;
                    BindData();
                    break;
            }
        }         

    }