我有以下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;
}
}
即使我尝试过div而不是asp:table,但没有任何工作。
<div>
<%#_getLeftMenuSrce()%>
</div>
克服此问题的任何线索?提前谢谢。
请注意我在下面提到了链接,但没有任何帮助。
How to call a code-behind method from aspx page?
答案 0 :(得分:0)
使用<%=_getLeftMenuSrc() %>
答案 1 :(得分: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 !!";
}
BTW:不要使用表来构建导航;-)。试试这个链接:http://www.w3schools.com/css/css_navbar.asp