2010-06-08 3 views
2

ASP .net 2.0에서 작업 중입니다. 나는 학습자입니다. 그 안에 버튼이있는 격자보기가 있습니다. 아래의 asp 마크를 찾으십시오.버튼을 사용하여 asp .net 격자보기에 새 행 추가

<form id="form1" runat="server"> 
<div> 
    <asp:GridView ID="myGridView" runat="server"> 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:Button CommandName="AddARowBelow" Text="Add A Row Below" runat="server" /> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
</div> 
</form> 

아래 코드를 찾으십시오.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Data; 
using System.Web.UI.WebControls; 

namespace GridViewDemo 
{ 
    public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      DataTable dt = new DataTable("myTable"); 
      dt.Columns.Add("col1"); 
      dt.Columns.Add("col2"); 
      dt.Columns.Add("col3"); 
      dt.Rows.Add(1, 2, 3); 
      dt.Rows.Add(1, 2, 3); 
      dt.Rows.Add(1, 2, 3); 
      dt.Rows.Add(1, 2, 3); 
      dt.Rows.Add(1, 2, 3); 
      myGridView.DataSource = dt; 
      myGridView.DataBind(); 
     } 

     protected void myGridView_RowCommand(object sender, GridViewCommandEventArgs e) 
     { 

     } 
    } 
} 

내가 명령 단추를 클릭 할 때, 그것은 mygridview_rowcommand()을 발사 것이라고 생각하지만, 대신에 다음과 같이 오류가 발생했습니다 :

잘못된 다시 게시 또는 콜백 인수를. 이벤트 유효성 검사는 구성 또는 < % @ Page EnableEventValidation = "true"%>를 사용하여 활성화됩니다. 보안상의 이유로이 기능은 포스트 백 또는 콜백 이벤트에 대한 인수가 원래 렌더링 된 서버 컨트롤에서 비롯된 것인지 확인합니다. 데이터가 유효하고 예상되는 경우 유효성 검사를 위해 다시 게시 또는 콜백 데이터를 등록하려면 ClientScriptManager.RegisterForEventValidation 메서드를 사용합니다.

어디에서 잘못 될지 알 수 있습니까?

답변

1

먼저 이벤트 유효성 검사를 사용하지 않도록 설정하고 결과가 무엇인지 확인하십시오. 이는 코드에서 명백한 문제이므로 먼저 확인하십시오. 그 후

, 버튼의 속성에서 OnCommand 이벤트를 삭제하고,에 OnRowCommand 이벤트를 추가 :

<%@ Page EnableEventValidation="false" ... 

그러나 당신은 이러한 해킹에 restort 다음을 수행하지 않으려면 GridView 그 자체.

예 :

<asp:GridView OnRowCommand="myGridView_RowCommand"> 
    ... 
</asp:GridView> 

이이 명령을 처리하는 올바른 방법이어야한다.
단추가 의도 한대로 작동하려면 특정CommandName이어야합니다.

See this page이 문제에 대한 자세한 설명은이 항목을 참조하십시오. 해당 페이지에 작업 예제도 있습니다. 확인해 볼 가치가 있습니다.

+0

나는 당신이 말한대로했다. 그리고 나서 나는 오류를 얻지 못했습니다. 그러나 단추를 클릭하면 myGridView_RowCommand가 실행되지 않습니다. 실제로 추가했습니다.

 asp:Button OnCommand="myGridView_RowCommand" .... 
으로 변경되었습니다. – SARAVAN

+0

@SARAVAN - 그런데, 당신의 코드에서'GridView'와'myGridView_RowCommand'는 어떤 식 으로든 연결되지 않습니다. – Venemo

+0

asp : Button OnCommand = "myGridView_RowCommand" 위 코드를 살펴보면 실제로 제 질문에 답하는대로 추가했습니다. 어쨌든 나는 또한 코드를 업데이트했다. – SARAVAN