ASP控件与内联c#
本文关键字:控件 ASP | 更新日期: 2023-09-27 18:16:55
我正在使用内联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>");
}
%>
你可以使用这样的条件语句:
<%
if (checkLogin()==true){
%> Logged In content here <%
} else {
%>
Not Logged In content here, including server controls.
<%
}
%>
模板化控件也可以。
你试过了吗?Response.Write()
的结果将放在开头的<html>
标签上方。
所以这不是一个好主意。
您可以使用Templated控件,LoginStatus控件似乎非常适合这项工作。
@Tetsujin no Oni的答案解决了问题,但是…
你为什么不创建你自己的用户控件(customDropDown.ascx) ?
这样你就可以:
- 在其他地方重用
- 封装行为,所以你只需要在一个地方做改变
- 不使用字符串,并有智能感知支持
- 编写支持visual studio预览的HTML标签