我无法让OnRowCommand解雇。什么看错了?这用于显示来自sql server的数据库,其中包含来自每个行的链接。它使用MVC和visual studio 2010构建在c#中
我不知道程序出了什么问题,我在这个页面和site.master页面都启用了ViewStateMode,并尝试编辑太长时间,看起来有什么不对吗?
顺便说一下,这是我们第一次使用c#MVC或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>
答案 0 :(得分:1)
ASP.NET MVC仅使用视图来呈现html - 所以在这种情况下,如果您使用ASP.NET网页或用户控件作为视图,那么它将仅用于呈现输出html。
包含控件事件的整个回发后模型将无法正常工作,因为ASP.NET MVC控制器将拦截POST请求。 ASP.NET页面没有机会处理请求(并随后引发回发事件)。
此外,您似乎不了解ASP.NET MVC模型,并且您想开始阅读更多相关内容 - 请参阅http://msdn.microsoft.com/en-us/magazine/cc337884.aspx