2014-07-02 40 views
0

我有以下aspx代码,我从后面的代码调用方法。代码隐藏方法的结果是不能在页面中呈现。来自aspx的方法后面的调用代码

<%@ Page Language="C#" AutoEventWireup="false" Src="LeftMenuSrce.aspx.cs" Inherits="LeftMenuSrce" %> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > 
    <html> 
    <head> 
     <title>Home</title> 
    </head> 
    <body> 
     <asp:Table ID ="LeftMenuTable" runat="server"> 
      <asp:TableRow> 
       <asp:TableCell ID="LeftMenuSrce" OnDataBinding="_getLeftMenuSrc"></asp:TableCell></asp:TableRow> 
     </asp:Table> 
    </body> 
    </html> 

下面是我的CS代码:

public class LeftMenuSrce : System.Web.UI.Page 
    { 
     protected System.Web.UI.WebControls.TableCell LeftMenuSrce; 
     protected System.Web.UI.WebControls.Table LeftMenuTable; 
     protected void Page_Load(object sender, EventArgs e) 
     {   
      LeftMenuSrce.DataBind();    
     } 

     protected string _getLeftMenuSrc() 
     { 
      string leftMenu; 
      leftMenu = "LeftMenuNew.aspx"; 
      return leftMenu; 
     } 
    } 

即使我已经试过格,而不是ASP:表,但什么也没有工作。

<div> 
<%#_getLeftMenuSrce()%> 
</div> 

任何解决此问题的线索?提前致谢。

请注意我已经提到下面的链接,但没有任何帮助。

How to call a code-behind method from aspx page?

Call code behind method from aspx page

ASP.NET - Use variable in .aspx page

+3

这不是'OnDataBinding'方法的工作方式。它不应该返回一个值,它必须有一个'EventArgs'参数,并且它应该处理正确分配值 - http://msdn.microsoft.com/en-us/library/system.web.ui.control .ondatabinding(v = vs.110).aspx?cs-save-lang = 1&cs-lang = csharp#code-snippet-1 – Luaan

回答

0

使用<%=_getLeftMenuSrc() %>

+0

<%=... %>用于评估表达式是否正确?我需要绑定来自LeftMenuNew.aspx的数据,其中我正在编写一些逻辑。我已经提到这个链接<%= ..%> http://forums.asp.net/t/1313014.aspx?How+to+work+with+server+tags+in+aspx+html+page – user3661300

+0

如果你想把结果返回然后两种方式1.将内容与使用ContentPlaceHolder在UserControl中呈现,在两个页面中使用该用户控件。另一种方法是在代码隐藏请求页面中使用HttpClient,读取结果并渲染。 – RAJ

+0

要被重新使用的内容应该被放置UserControl并且使用你正在使用div的UserControl。这是实现你想要的更好的方法。另一种方法是在你的codebehind函数中使用HttpClient对页面的创建请求(这种方法用于外部页面),Client将返回网页的内容或任何http请求。您可以返回该内容。 – RAJ

0

你必须实现你的方法 “_getLeftMenuSrc()” 作为一个事件处理程序。

例子:

protected void _getLeftMenuSrc(object sender, EventArgs e) {} 

我猜你只是尝试一些文本写入到您的TableCell LeftMenuSrce。 一种方式做,这是写的OnPreRender事件处理程序是这样的:

protected void TableCell1_OnPreRender(object sender, EventArgs e) 
{ 
    TableCell1.Text = "My text in a cell !!"; 
    // Hint: 'sender' is your table cell ;-) 
    ((TableCell) sender).Text = "My other text in that cell !!"; 
} 

的另一种方式是,以填补Page_Load事件中的所有表单元格。像这样:

protected void Page_Load(object sender, EventArgs e) 
{ 
    TableCell1.Text = "My text in a cell !!"; 
} 

顺便说一句:不要使用表来构建导航;-)。试试这个链接:http://www.w3schools.com/css/css_navbar.asp

相关问题