我正在使用内联C#编写动态下拉列表。取决于用户是否登录。我希望能够写一些asp文本框(见下文)。有没有办法做到这一点,或者更好的方式来完成任务。
感谢。
<%
if (checkLogin() == true)
{
Response.Write("<ul id=\"userDropdown\">");
Response.Write("<li class=\"userDropdown_right\"><a href=\"#\" class=\"drop\">Test User</a>");
Response.Write("<div class=\"dropdown align_right\" style=\"width:175px;\">");
Response.Write("<div class=\"col_2\">");
Response.Write("<h2>Test User</h2>");
Response.Write("<h3>Administrator</h3>");
Response.Write("<a href=\"#\">Settings </a>");
Response.Write("<a href=\"#\">Logout </a>");
Response.Write("</div></div></li></ul>");
}
else
{
Response.Write("<ul id=\"userDropdown\">");
Response.Write("<li class=\"userDropdown_right\"><a href=\"#\" class=\"drop\">Login</a>");
Response.Write("<div class=\"dropdown align_right\" style=\"width:175px;\">");
Response.Write("<div class=\"col_2\">");
**<asp:TextBox ID="test" runat="server" />**
Response.Write("</div></div></li></ul>");
}
%>
答案 0 :(得分:4)
您可以使用这样的条件:
<%
if (checkLogin()==true){
%> Logged In content here <%
} else {
%>
Not Logged In content here, including server controls.
<%
}
%>
模板控制也可以。
答案 1 :(得分:2)
Response.Write()
的结果将放在开头的<html>
标记上方
所以这不是一个好主意。
您可以使用模板化控件,LoginStatus控件似乎非常适合这项工作。
答案 2 :(得分:2)
@Tetsujin no Oni的答案解决了这个问题,但是......
为什么不创建自己的用户控件(customDropDown.ascx)???
通过这样做,您将能够: