首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gridview是用SqlCommand更新的,但是编辑和删除不再起作用。

问Gridview是用SqlCommand更新的,但是编辑和删除不再起作用。
EN

Stack Overflow用户
提问于 2015-09-24 19:17:02
回答 1查看 123关注 0票数 1

我有一个网格视图(绑定到Server数据库)、一个文本框和一个按钮。

我可以删除或编辑网格视图中的值。一切正常。不需要自己放置任何代码,默认情况下它是存在的。

但是,在textbox中,我可以用一个按钮设置一个值,以缩小我的网格视图的结果。

在按钮后面,我有下面的代码。结果显示在网格视图中。不错..。不幸的是,到那时为止,“删除”或“编辑”已经开始工作了。我得到:

GridView触发了未被处理的事件RowEditing

如果默认情况下不需要RowEditing事件,为什么我要自己编写代码呢?我做错什么了?

代码语言:javascript
复制
SqlCommand cmd = new SqlCommand("select * from [DbPeople].[Info] WHERE username like '" + TxtUsername.Text + "%'", conn);
conn.Open();

cmd.ExecuteNonQuery();

SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

DataSet ds = new DataSet();
da.Fill(ds, "info");

GridView1.DataSourceID = null;
GridView1.DataSource = ds;
GridView1.DataBind();

谢谢你帮忙。

菲利普

EN

回答 1

Stack Overflow用户

发布于 2015-09-25 17:28:22

感谢@j.f的输入。我找出了哪里出了问题,以及如何解决它。

我没有更改DataSourceID,而是保留了它,但在单击按钮时更改了SelectCommand。然后,我将其添加到视图状态中。

在一个新的page_load上,我从viewstate获取新的SQL语句。效果很好!不必为编辑或删除编写任何代码。

代码语言:javascript
复制
protected void Button1_Click(object sender, EventArgs e)
{
    // I don't use this anymore :

    //            GridView1.DataSourceID = null;
    //            GridView1.DataSource = ds;
    ...
    // now I do this :

    // New query string to narrow down the selection based on the input
    string sSQL = "select ...";
    SqlDataSource1.SelectCommand = sSQL;
    ViewState.Add("MySQL", sSQL);
}

protected void Page_Load(object sender, EventArgs e)
{
    LblResult.Text = "";
    if (!Page.IsPostBack)
    {
        GridView1.DataBind();
    }
    if (ViewState["MySQL"] != null)
    {
        SqlDataSource1.SelectCommand = (string)ViewState["MySQL"];
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32769220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档