C# 如何在编辑模式下保留gridview的select命令?
我有一个gridview,它允许用户根据单选按钮列表值在StandardView、basic select*from表和CurrentView之间更改gridview select命令。此查询显示当前所有项目的列表。在加载表单之前,我已公开声明了这两个字符串。当用户单击“编辑”时,gridview会进行回发,将其发送回标准视图 这是我的数据表: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
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;
}
}
}