- 热门文章:
- · 关于.net的几个重要问题的bigeagle版本
- · 关于datagrid的使用以及动态修改,以及使用存储过程的介绍
- · 转阿土伯推荐的文章:在 VS.NET 中编写 Web 应用程序(附图)(推荐)
- · 转新技术网:在ASP.NET中使用.NET组件
- · 自己写的一个资料验证的asp.net程序,大家看看吧!
- · 关于在ASP.NET 中进行调试的方法(转载自itpeople),不过我个人对第三招不以为然,有了vs.net还要那个...
- · 菜鸟入门篇---有关ASP.NET的一些基本说明,解释. [页面标识]
- · 我的第一个ASP+程序,如果是新手请进来看吧。谢绝高手。:)
- · Security Hole In ASP.NET Beta 1 (from angryCoder)
- · 关于从toolbox内拖放控件到form时出错的解决办法
- · XML、DataSet、DataGrid结合写成广告管理程序(上)(转载)
- · XML、DataSet、DataGrid结合写成广告管理程序(下)(转载)
上一篇:SQL命令中DateTime格式参考 >>
关于webcontrol和pagelet的一点看法
而且Pagelet有直观明了的特点。Pagelet 可与WebForm一样支持控件拖放。这极大方便了我们的编程。我个人认为简单的无需支持模版的空件完全可以用Pagelet来开发。它与WebControl是同等的。当然如果要做一个商业化的复杂的(比如你想自己做一个类似Datagrid的控件)还是要用WebControl的。这里就两个例子来说明
我们分别用这两种方式开发一个用户登录控件
1._Signin.ascx
<%@ Control Inherits="Portal.PortalModuleControl" %>
<%@ Import Namespace="Portal" %>
<script language="C#" runat="server">
void LoginBtn_Click(Object sender, ImageClickEventArgs e) {
// Attempt to Validate User Credentials using UsersDB
UsersDB accountSystem = new UsersDB();
String userId = accountSystem.Login(email.Text, password.Text);
if ((userId != null) && (userId != "")) {
// Use security system to set the UserID within a client-side Cookie
CookieAuthentication.SetAuthCookie(userId, RememberCheckbox.Checked);
// Redirect browser back to originating page
Response.Redirect("default.aspx");
}
else {
Message.Text = "<" + "br" + "><" + "br" + ">登录失败!<" + "br" + "><" + "br>";
}
}
</script>
<hr noshade size="1pt" width="98%">
<span class="SubSubHead" style="height:20">Account Login</span>
<br>
<span class="Normal">Email:</span><br>
<asp:TextBox id="email" columns="9" width="130" cssclass="NormalTextBox" runat="server"/><br>
<span class="Normal">Password:</span><br>
<asp:TextBox id="password" columns="9" width="130" textmode="password" cssclass="NormalTextBox" runat="server"/><br>
<asp:checkbox id="RememberCheckbox" class="Normal" Text="Remember Login" runat=server/>
<table cellspacing=0 cellpadding=4 border=0>
<tr>
<td>
<asp:ImageButton id=SigninBtn ImageUrl="images/signin.gif" OnClick="LoginBtn_Click" runat="server" /><br>
<a href="register.aspx"><img src="images/register.gif" border="0"></a></br>
<asp:label id="Message" class="NormalRed" runat=server/>
</td>
</tr>
</table>
<br>
////
////2.WebControl
///
using System;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Web.SessionState;
using System.Web.Security;
using Portal;
namespace Portal.Web
{
/// <summary>
/// Summary description for Login.
/// </summary>
[DefaultProperty("Text"),
ShowInToolbox(true),
ToolboxData("<{0}:Login runat=server></{0}:Login>")]
public class Login : Control, INamingContainer
{
private string text;
protected TextBox txtUserName;
protected TextBox txtPassword;
protected Label lblUserName;
protected Label lblPassword;
protected RequiredFieldValidator RVUserName;
protected RequiredFieldValidator RVPassword;
protected LinkButton btnLogin;
protected LinkButton btnRegister;
protected Label ErrMsg;
protected CheckBox RememberCheckbox;
[Bindable(true),
Category("Appearance"),
DefaultValue(""),
Persistable(PersistableSupport.Declarative)]
public string Text
{
get
{
return text;
}
set
{
text = value;
}
}
/// <summary>
/// Render this control to the output parameter specified.
/// </summary>
/// <param name="output"> The HTML writer to write out to </param>
protected override void CreateChildControls()
{
this.Controls.Add(new LiteralControl("<Table>"));
this.Controls.Add(new LiteralControl("<Tr>"));
this.Controls.Add(new LiteralControl("<Td>"));
lblUserName = new Label();
lblUserName.Text = "用户名";
this.Controls.Add(lblUserName);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("<Td>"));
txtUserName = new TextBox();
txtUserName.Text = "";
this.Controls.Add(txtUserName);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("<Td>"));
RVUserName = new RequiredFieldValidator();
RVUserName.ControlToValidate = "txtUserName";
RVUserName.ErrorMessage = "用户名不能为空!";
RVUserName.ForeColor = System.Drawing.Color.Red;
this.Controls.Add(RVUserName);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("</Tr>"));
this.Controls.Add(new LiteralControl("<Tr>"));
this.Controls.Add(new LiteralControl("<Td>"));
lblPassword = new Label();
lblPassword.Text = "密码";
this.Controls.Add(lblPassword);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("<Td>"));
txtPassword = new TextBox();
txtPassword.TextMode = System.Web.UI.WebControls.TextBoxMode.Password;
txtPassword.Text = "";
this.Controls.Add(txtPassword);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("<Td>"));
RVPassword = new RequiredFieldValidator();
RVPassword.ControlToValidate = "txtPassword";
RVPassword.ErrorMessage = "密码不能为空!!";
RVPassword.ForeColor = System.Drawing.Color.Red;
this.Controls.Add(RVUserName);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("</Tr>"));
this.Controls.Add(new LiteralControl("<Tr colspan=3>"));
this.Controls.Add(new LiteralControl("<Td>"));
RememberCheckbox = new CheckBox();
this.Controls.Add(RememberCheckbox);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("</Tr>"));
this.Controls.Add(new LiteralControl("<Tr colspan=3>"));
this.Controls.Add(new LiteralControl("<Td>"));
btnLogin = new LinkButton();
btnLogin.Text = "登录";
btnLogin.Click += new EventHandler(this.btnLogin_Click);
this.Controls.Add(btnLogin);
this.Controls.Add(new LiteralControl(" "));
btnRegister = new LinkButton();
btnRegister.Text = "注册";
btnRegister.Click += new EventHandler(this.btnRegister_Click);
this.Controls.Add(btnLogin);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("</Tr>"));
this.Controls.Add(new LiteralControl("<Tr colspan=3>"));
this.Controls.Add(new LiteralControl("<Td>"));
ErrMsg = new Label();
ErrMsg.ID = "ErrMsg";
this.Controls.Add(ErrMsg);
this.Controls.Add(new LiteralControl("</Td>"));
this.Controls.Add(new LiteralControl("</Tr>"));
this.Controls.Add(new LiteralControl("</Table>"));
}
private void btnLogin_Click(Object sender, EventArgs e)
{
UsersDB accountSystem = new UsersDB();
String userId = accountSystem.Login(txtUserName.Text, txtPassword.Text);
if ((userId != null) && (userId != "")) {
// Use security system to set the UserID within a client-side Cookie
CookieAuthentication.SetAuthCookie(userId, RememberCheckbox.Checked);
// Redirect browser back to originating page
Page.Response.Redirect("default.aspx");
}
else {
ErrMsg.Text = "<" + "br" + "><" + "br" + ">登录失败!<" + "br" + "><" + "br>";
}
}
private void btnRegister_Click(Object sender, EventArgs e)
{
Page.Response.Redirect("register.aspx");
}
}
}
下一篇:关于.net的几个重要问题的bigeagle版本 >>
相关文章:
- · 我的aspx为什么无法显示中文?
- · web窗口间的互相控制
- · BigEagle的数据库结构(转载,一动手,就轻拿5分)
- · 转雨天妹妹的文章:TreeView的DHTML实现(可以实现拖动效果哟)
- · 吐血奉献:如何搞定DataGrid 分栏的大小(即DataGrid的可视化控制).
- · Is your .NET Code safe?
- · Introduction to .NET Reflection
- · .net里面的数值格式变换
- · Picture Numeric Format Strings(我很难解释大家自己看)
- · 数值变换时的格式化字符举例
- · Numeric Parse Method
- · 日期和时间的转换
- · 自定义的转换格式
- · 如何将powerpoint转换为html
- · css设定表格宽度
- · .Net边学边讲(三)
- · Calling a Button Event from a Compiled DLL
- · datagrid怎么设置分页?
- · .NET之ASP Web Application快速入门(3)(转载)
- · .NET之ASP WebApplication快速入门(4)(转载)
- · .NET之ASP WebApplication快速入门(5)(转载)
- · .NET之ASP Web Application快速入门(1)(转载)
- · .NET之ASP Web Application快速入门(2) (转载)
- · ASP.NET中的错误处理支持
- · ASP.NET中的代码分离
- · 在ASP.NET中使用AdRotator控件(转)
- · 在ASP.NET中动态生成图形(转)
- · 用ASP.NET加密口令(转)
- · ASP.NET中的错误处理支持(转)
- · ASP.NET中发送Email完整实例(转)
- · ASP.NET中的注释符号
- · 老外编的程序(八):在CSharp里面使用Http Get方法
- · 显示当前浏览器头信息(HEADER)
- · 轮换广告
- · 一个dnslookuo例子。。。
- · beta2的web.config配置
- · 如何在web.config中建立公用的的数据库连接
- · asp.net key considerations(三)
