等待,谢谢啊

解决方案 »

  1.   

    多行编辑可以看这个示例:http://www.dotnetjunkies.com/Article/65DC168F-B2AD-408B-8AA0-AD90DD739317.dcik编辑与删除可跨页进行 不是很理解什么意思,如果是指多次编辑后一次提交,那么用b/s方式虽然也可以实现,但会非常麻烦。
      

  2.   

    是多行编辑吗: biggersea(biggersea)
      

  3.   

    webdiyer(陕北吴旗娃) :你说我也看过,还根据它改了呢,就是弄不好呀,关键,我想要的sql+ASP.NET
      

  4.   

    UP  UP UP   UP
      

  5.   

    要实现跨页编辑数据,你需要用ViewState或者Session来保存先前编辑的数据,用Session会比较简单,可惜一时没有找到相关的例子。
      

  6.   

    用datatable绑定datagrid可以做出来的
    关键在于换页时记得要更新当前页所在行的datatable的记录
      

  7.   

    陕北吴旗娃:如果用session的话,那同一页的同一列的update不是很麻烦,能不能具体点,举个例子?
     cansum396(沉觉不醒) :用datatable绑定datagrid能不能给个范例呀,谢谢
      

  8.   

    以下是部分代码,没有分页的,忘高手提供分页的,谢谢
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if (!Page.IsPostBack )
    {
    // 如果是第一次装载的话,绑定数据。
    BindContacts();
    //_sSort = "id";
    // }
    // else
    // {
    // 否则,从视图状态中读取排序状态.
    // _sSort = (string)ViewState["Sort"];
    } }
    private void BindContacts()
    {
    // 保存排序状态到视图状态中.
    // ViewState["Sort"] = _sSort; // 绑定网格到已排序的数据视图中.
    da.Fill(ds1);            
    //DataView dv = new DataView(_dsContacts.Tables["Contact"]);
    //dv.Sort = _sSort;
    dgContacts.DataSource = ds1;
    dgContacts.DataBind();
    }
    private void btnUpdate_Click(object sender, System.EventArgs e)
    {     
    // string dgIDs = "";
    foreach (DataGridItem di in dgContacts.Items)
    {
    // 确信是数据项而不是页首或页尾. if (di.ItemType == ListItemType.Item || di.ItemType == ListItemType.AlternatingItem)
    {
    // 取得更新或删除操作执行以后的当前行.
    // DataRow dr = ds1.Tables["Contact"].Rows.Find(dgContacts.DataKeys[di.ItemIndex]); // 检查是否需要删除某行.
    if (((CheckBox)di.FindControl("chkDelete")).Checked)
    {    
    // dgIDs += ((Label) di.FindControl ("id")).Text.ToString() + ","; // ds1.Tables["Contact"].Rows.Remove(ds1.Tables["Contact"].Rows.Find(dgContacts.DataKeys[di.ItemIndex]));//删除指定行
    }
    else
    {
    // //更新数据行.
    // dr["id"] = ((TextBox)di.FindControl("id")).Text;
    // dr["Name"] = ((TextBox)di.FindControl("Name")).Text;
    // dr["pp"] = ((TextBox)di.FindControl("pp")).Text;
    string strUpdate="";
    strUpdate+="name='"+((TextBox)di.FindControl("Name")).Text+"'";
    strUpdate+=",pp='"+((TextBox)di.FindControl("pp")).Text+"'";

    string updateCmd="UPDATE pl set "+strUpdate+" where id='"+((TextBox)di.FindControl("id")).Text+"'";
    SqlCommand myCommand=new SqlCommand(updateCmd,sqlCon);
                               
    myCommand.Connection.Open();
    myCommand.ExecuteNonQuery();
    myCommand.Connection.Close();
    }
    }

    //if (ds1.HasChanges())
    //{

    //}
    } // 如果有变化则保存它.
    BindContacts();//绑定
    } private void dgContacts_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
    if (e.CommandName == "Add")
    {
    //string[] sContact = {"", "", ""};
    // sContact[0] = ((TextBox)e.Item.FindControl("Newid")).Text;
    // sContact[1] = ((TextBox)e.Item.FindControl("NewName")).Text;
    //sContact[2] = ((TextBox)e.Item.FindControl("Newpp")).Text; // ds1.Tables["Contact"].Rows.Add(sContact); string strUpdate="";
    strUpdate+="Name='"+((TextBox)e.Item.FindControl("NewName")).Text+"''";
    strUpdate+=",pp='"+((TextBox)e.Item.FindControl("Newpp")).Text+"'";

    string updateCmd="UPDATE pl set "+strUpdate+" where id='"+((TextBox)e.Item.FindControl("Newid")).Text+"'";
    SqlCommand myCommand=new SqlCommand(updateCmd,sqlCon); myCommand.Connection.Open();
    myCommand.ExecuteNonQuery();
    myCommand.Connection.Close();
    } BindContacts();
    }
      

  9.   

    你看一下SQL语句附近是否有问题啊?程序没问题。我做过。但分页的我没做过。
    帮你UP。