2014-07-02 37 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

相關問題