2011-04-06 3 views
2

안녕하세요 모두 난의 GridView (GridView1는) 나는 열을 추가하고 버튼을 삽입 : 나는 SQL 업데이트를 실행하려는 버튼의 클릭에 기본적으로ASP.NET C# 코드 버튼을

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
      AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" 
      onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px"> 
      <Columns> 
       ..... 
       <asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" /> 
      </Columns> 
     </asp:GridView> 

을 하지만 C#을 입력하고 쿼리를 추가하는 버튼을 클릭하는 것 같습니다. 페이지에 대해 C#을 사용할 수 있지만 메서드에 대해 작성해야 할 내용이 확실하지 않습니다.

Heres는 C# 코드 :하지만 아무것도하지 않고

void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
     if (e.CommandName == "cmdFlag") 
     { 
     con.Open(); 

     cmd = new SqlCommand("UPDATE Comments SET Flagged = '" + "Yes" + "'", con); 

     cmd.ExecuteNonQuery(); 


     } 

    } 

그것. 기본적으로 행을보고 플래그가 지정된 단추를 클릭하면 플래그가있는 상태에서 "예"로 업데이트해야합니다.

답변

2

직접 이벤트가 발생하지 않습니다. RowCommand 이벤트에 코드를 작성해야합니다.

void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) 
{ 
    if(e.CommandName=="cmdFlag") 
     { 
     //Write code update database 
    } 
} 

또한 GridView 컨트롤을 수정해야합니다. 이런 이벤트를 추가하십시오. 당신은 당신의 GridView에 OnRowCommand="GridView1_RowCommand"을 추가 잊은 here

+0

안녕 감사합니다 업데이트되었습니다. 내 게시물을 다시 볼 수 있습니까? 나는 더 많은 정보로 업데이트했습니다. – Mark

+0

나는 대답을 수정했다 :) – Anuraj

+0

고마워 이제는 뭔가를하지만, 모든 행을 업데이트한다. 나는 어디에서 행을 써야하는지에 관해서는 확실하지 않은 WHERE 구문을 필요로한다고 생각한다. 그게 도움이된다면 Comment_ID 필드가 있습니다. – Mark

0

onrowcommand="GridView1_RowCommand" 

당신은이 RowCommand 이벤트를 해고하지 않습니다 그 이유는, 더 많은 정보를 얻을 수 있습니다.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AllowPaging="True" 
     AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" 
     onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px"> 
0

당신이 ID를 추가하려면 영문 페이지

OnRowCommand="GridView1_RowCommand" 
0

을이

GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand); 

을 수행하여 코드 숨김 파일에 이벤트 핸들러를 등록하고 당신이 추가 WHERE 명세서에 사용하면 에 넣을 수 있습니다.

<asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" CommandArgument='<%# Eval("Comment_ID") %>' /> 

다음 코드에서 당신은

var id = e.CommandArgument.ToString(); 

업데이트에서 얻을 수 있습니다 : 단지 내가하지만 내가 원하는 일을하지를 추가했는지에 대한 코드

+0

안녕하세요 당신이 넣은 코드를 추가했지만 오류가 발생합니다 : Eval(), XPath() 및 Bind() 같은 데이터 바인딩 방법은 데이터 바인딩 된 컨트롤의 컨텍스트에서만 사용할 수 있습니다. – Mark

+0

CommandArgument = "Comment_ID"를 사용하여 CommandArgument = '<% # Eval ("Comment_ID") %>'를 바꾸십시오. –