我是MVC架构的新手,我正在努力获得Button onclick。请帮我跟踪一下这个问题。我有一个Telerik TreeView控件,它已填充。一些节点具有子节点,而其中一些节点没有。
请告诉我需要进行哪些更改才能解决问题 在这里,我正在努力让它发挥作用。
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/PostLogin.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<applications>>" %>
<%@ Import Namespace="ApplicationGrps" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %>
<script runat="server" type="text/javascript">
protected void Page_Load()
{
ApplicationGrps.Visible = true;
ApplicationGrps.DataSource = ODS1;
ApplicationGrps.DataFieldID = "ApplicationName";
ApplicationGrps.DataFieldParentID = "ParentID";
ApplicationGrps.DataBind();
BindCheckedTags(ApplicationGrps);
}
protected void BindCheckedTags(RadTreeView treeView)
{
// Displays the checked nodes
}
protected void ODS2_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
e.InputParameters["ClientID"] = ViewData["ClientID"];
}
protected void btnSave_Click(object sender, EventArgs e)
{
//Iterate through the tree and get all the nodes that are checked and submit it.
}
</script>
<asp:Content ID="Content2" ContentPlaceHolderID="HeadContent" runat="server">
<link href="<%: Url.Content("~/Content/script-libraries/jquery-ui-1.7.2.custom/css/smoothness/jquery-ui-1.7.2.custom.css") %>"
rel="stylesheet" type="text/css" />
<script src="<%: Url.Content("~/Scripts/jquery-1.4.1.js") %>" type="text/javascript"></script>
</asp:Content>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<form id="form1" runat="server" method="post">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<telerik:RadTreeView id="AppModulesTreeView" runat="server" CheckBoxes="True" Visible="true" >
</telerik:RadTreeView>
<asp:ObjectDataSource ID="ODS1" runat="server"
SelectMethod="GetAllApplicationModules"
TypeName="ELS.BOS.Services.EntitlementProxy.EntitlementServiceClient">
</asp:ObjectDataSource>
<asp:ObjectDataSource ID="ODS2" runat="server"
SelectMethod="GetApplicationModMappedByClientID"
TypeName="ELS.BOS.Services.EntitlementProxy.EntitlementServiceClient"
onselecting="ODS2_Selecting">
<SelectParameters>
<asp:Parameter Name="ClientID" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<%-- <telerik:RadButton runat="server" onclick="btnSave_Click"
Text="Save">
</telerik:RadButton>
<telerik:RadButton ID="btnCancel" runat="server" Text="Cancel"
>
</telerik:RadButton>--%>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="btnSave_Click" />
</div>
</form>
</asp:Content>
如果我需要使用javascript或jquery来解决这个问题,请告诉我。请给我一些关于如何在按钮控制点击时触发btnSave_click的示例。
谢谢!
答案 0 :(得分:7)
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="btnSave_Click" />
,asp:ObjectDataSource
,ScriptManager
,...
否强>
在ASP.NET MVC应用程序中,您不使用服务器端控件(无runat="server"
)。你没有PostBack。没有ViewState。没有代码。没有事件。没有脚本管理器。没有对象数据源。所有这些都是WebForms特有的,不再用于MVC。
在ASP.NET MVC应用程序中,您有一个Controller,一个Model和一个View。该视图包含标准HTML标记,可以借助HTML帮助程序生成标记。要调用控制器,您可以使用普通链接:
<%= Html.ActionLink("link text", "actionName", "controllerName") %>
控制器包含操作模型的操作,并通过传递它需要显示的所有信息来选择要渲染的视图。
我强烈建议你开始阅读这里的教程:http://asp.net/mvc关于MVC的工作原理,并熟悉这个框架的基础知识。