ASP.NET GridViewで更新ボタンを構成する

私はVS2005でC#ASP.NETを使用しています。

私はgridviewテーブルを持っていますが、スマートタブを右クリックすると編集を有効にするの選択肢はありません。

したがって、私は手動で次のコードで編集ボタンを追加しました:

AutoGenerateEditButton = "True"

The edit button has successfully appeared on my gridview like this: enter image description here

When I click on the Edit button, the page is refreshed and the row is now editable: enter image description here

しかし、私が更新ボタンを押したとき、私はエラーに持ち込まれました:

UpdateCommandが指定されていない限り、データソース 'SqlDataSource1'によって更新はサポートされていません。

enter image description here http://i.stack.imgur.com/W97K0.png

Update ボタンのバックグラウンドコードが表示されないため、 UpdateCommand の入力方法や設定方法についてはわかりません。

経験豊富な人が助けを必要とする前もって感謝します。


編集: SqlDataSource1 にINSERTクエリを追加しましたが、 Update ボタンを押しても同じエラーが発生しました。

1
あなたのコメントに例を求めているように、見てください..
追加された 著者 AnandMohanAwasthi,

4 答え

INSERT DELETE UPDATE のサポートを追加できる SqlDataSource1 コントロールを再設定する必要があります。 SELECT を使用します。

こちらをご覧くださいチュートリアル

3
追加された
ありがとう、私は今設定します。しかし、私はどのように私のINSERTステートメントの例を持っていますか?その特定の編集可能な行でINSERTステートメントをどのようにバインドするのかよくわかりません。ありがとうございました
追加された 著者 gymcode,
@RUiHAO - 編集された投稿を見てください(リンクが追加されました)。
追加された 著者 adatapost,

グリッドビューのselect文を設定するときにsqldatasourceを設定している間は、 "advanced" .clickというオプションがあり、 'update update insert nad delete statements'をクリックします。

1
追加された

たとえば、これを試してみてください...

  1. Firstly create a method to handle the update record.

    private void UpdateOrAddNewRecord(string parametervalue1, string parametervalue2)
        {
            using (openconn())
            {
                string sqlStatement = string.Empty;
                sqlStatement = "Update TableName set Name1 [email protected] where [email protected]";
    
    
                try
                {
               // SqlCommand cmd = new SqlCommand("storedprocedureName", con);
                  //cmd.CommandType = CommandType.StoredProcedure;
    
                    SqlCommand cmd = new SqlCommand(sqlStatement, con);
                    cmd.Parameters.AddWithValue("Name2", parametervalue2);
                    cmd.Parameters.AddWithValue("@Name1",parametervalue1);
    
                    cmd.CommandType = CommandType.Text;
                    cmd.ExecuteNonQuery();
    
                }
    
    
                catch (System.Data.SqlClient.SqlException ex)
                {
    
                    string msg = "Insert/Update Error:";
    
                    msg += ex.Message;
    
                    throw new Exception(msg);
    
    
                }
    
                finally
                {
    
                    closeconn();
    
                }
            }   
    
  2. Now create the row updating method..

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string ParameterValue1 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text;
    
            string ParameterValue2 = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text; //Name
    
            UpdateOrAddNewRecord(ParameterValue1, ParameterValue2);//call update method
    
            GridView1.EditIndex = -1;
            BindGridView();
            Label2.Visible = true;
            Label2.Text = "Row Updated";
        }
    
  3. Create Row Cancelling event..

    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; //swicth back to default mode BindGridView(); }

  4. Create row editing...

    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; BindGridView(); }

このような活動をさまざまな方法で行うには、他にも多くの方法があります。これは最も基本的な方法です。とにかく便利だと思われる場合は、それをあなたの答えとしてマークしてください

0
追加された
In your code I think you have not handled the event for "Update".


Have a look at the below example hope it might help you,
check for the "UpdateCommand".
Also write a Update event in C# to update.




    
        
        
        
        
    


    
        
    
    
        
        
        
        
    
    
        
        
        
    

0
追加された