2011-11-23 3 views
0

OnRowCommand가 실행되지 않습니다. 뭐가 잘못 보이니? 이것은 각 행에서 오는 링크가있는 SQL Server에서 데이터베이스를 표시하기위한 것입니다. MVC 및 Visual Studio 2010을 사용하는 C#으로 작성되었습니다.OnRowCommand가 실행되지 않음

프로그램에 어떤 문제가 있는지 잘 모르겠습니다.이 페이지와 site.master 페이지 모두에서 ViewStateMode를 활성화하고 너무 길게 편집 해 보았습니다. 뭐가 잘못 보이니?

우리가 C# MVC 또는 asp.net에서 처음으로 작업 한 적이있는 방식으로 코드가 다소 엉망이 될 수 있습니다. 이 경우에, 당신은 다음보기로 ASP.NET 웹 페이지 또는 사용자 컨트롤을 사용하는 경우에만 출력을 렌더링하는 데 사용됩니다 -

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" 
    Inherits="System.Web.Mvc.ViewPage<Teamsone.Models.Student>" %> 
<%@ Import Namespace="System.Data" %> 
<%@ Import Namespace="System.Data.SqlClient" %> 
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server"> 
Registration 
</asp:Content> 
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server"> 
<form id="form1" runat="server"> 
<h2>Classes offered for Next Semester [Spring 2012]</h2> 

<script runat="server"> 

protected void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e) 
{ 
    int index = Convert.ToInt32(e.CommandArgument); 
    GridViewRow row = GridView1.Rows[index]; 

    // Create a new ListItem object for the contact in the row.  
    ListItem item = new ListItem(); 
    item.Text = "weeeee!"; 

    ContactsListBox.Items.Add(item); 
} 

</script> 

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
       OnRowCommand="GridView1_RowCommand" allowpaging="true" DataKeyNames="SectionKey" 
       DataSourceID="SqlDataSource1" EnableViewState = "true"> 
    <Columns> 
     <asp:BoundField DataField="FacultyKey" HeaderText="FacultyKey" 
      SortExpression="FacultyKey" /> 
     <asp:BoundField DataField="SectionKey" HeaderText="SectionKey" ReadOnly="True" 
      SortExpression="SectionKey" /> 
     <asp:BoundField DataField="CourseKey" HeaderText="CourseKey" 
      SortExpression="CourseKey" /> 
     <asp:BoundField DataField="SectionDay" HeaderText="SectionDay" 
      SortExpression="SectionDay" /> 
     <asp:BoundField DataField="SectionTime" HeaderText="SectionTime" 
      SortExpression="SectionTime" /> 
     <asp:BoundField DataField="SectionSemester" HeaderText="SectionSemester" 
      SortExpression="SectionSemester" /> 
     <asp:BoundField DataField="SectionYear" HeaderText="SectionYear" 
      SortExpression="SectionYear" /> 
     <asp:BoundField DataField="ClassroomKey" HeaderText="ClassroomKey" 
      SortExpression="ClassroomKey" /> 
     <asp:buttonfield buttontype="Link" 
       commandname="Add" 
       text="Add"/> 
    </Columns> 
</asp:GridView> 
<asp:listbox id="ContactsListBox" runat="server" Height="200px" Width="200px"/> 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
    SelectCommand="SELECT * FROM [NextCourse]"></asp:SqlDataSource> 
</form> 
</asp:Content> 
+1

지금까지, 그것은 나에게 보이지 않는 참조 -

또한, 당신은 ASP.NET MVC 모델을 이해하는 것 같습니다하지 않는 당신은 그것에 대해 더 읽기 시작하려면 * MVC, 당신은 webforms 모드에 머물러있는 것 같습니다. –

+1

MVC가 아니라 웹 폼을 사용하려고하는 것처럼 보이기 때문에 (Anthony Pegram과 마찬가지로) MVC를 읽을 수 있습니다. http://www.asp.net/mvc/tutorials를 확인하십시오. –

답변

1

ASP.NET MVC 뷰는 HTML을 렌더링하는 데 사용 html.

ASP.NET MVC 컨트롤러에서 POST 요청을 가로 채기 때문에 컨트롤 이벤트를 포함한 전체 포스트 백 모델이 작동하지 않습니다. ASP.NET 페이지는 요청을 처리 할 수있는 기회를 얻지 못하고 이후에 다시 이벤트를 발생시킵니다. 사용 * 당신이 실제로있는 것처럼 http://msdn.microsoft.com/en-us/magazine/cc337884.aspx