麻烦知道的给下回复贴代码了
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//
Panel1.Visible = true;
PaneWelcome.Visible = false;
}
else
{
string userName = Session["UserName"].ToString();
if (userName == "")
{
Panel1.Visible = true;
PaneWelcome.Visible = false;
}
else
{
PaneWelcome.Visible = true;
Panel1.Visible = false;
lblWelcomeMsg.Text = "尊敬的" + userName + "您好";
}
}
}——————————index.aspx—————————————————————
<form id="form1" runat="server" action="login.ashx">
<div id="login1main">
<asp:Panel ID="Panel1" runat="server" Visible="false">
<ul>
<li>
<input type="submit" value="登录" />
<a href="Register.aspx">
<img alt="" src="images/icon_zc1.gif" border="0" /></a></li>
</ul>
</asp:Panel>
<asp:Panel ID="PaneWelcome" runat="server" Visible="false">
<ul>
<li>
<asp:Label ID="lblWelcomeMsg" runat="server" Text=""></asp:Label></li>
<li><a href="#" class="xg">资料密码修改</a></li>
<li><a href="#" class="jyjl">交易记录查询</a></li>
<li><a href="#" class="exit">退出一卡通平台</a></li>
</ul>
</asp:Panel>
</div>
</form>
_____________________________________提交到login.ashx
if (pwd == dbPassword)
{
//登陆成功转向
context.Session["UserName"] = userName;
context.Response.Redirect("~/index.aspx");
}
我是想通过index.aspx中的panel来显示登录 则显示欢迎XX 没有panel则换成登录窗口 但是load的ispostback一直是false
请问是什么问题??
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//
Panel1.Visible = true;
PaneWelcome.Visible = false;
}
else
{
string userName = Session["UserName"].ToString();
if (userName == "")
{
Panel1.Visible = true;
PaneWelcome.Visible = false;
}
else
{
PaneWelcome.Visible = true;
Panel1.Visible = false;
lblWelcomeMsg.Text = "尊敬的" + userName + "您好";
}
}
}——————————index.aspx—————————————————————
<form id="form1" runat="server" action="login.ashx">
<div id="login1main">
<asp:Panel ID="Panel1" runat="server" Visible="false">
<ul>
<li>
<input type="submit" value="登录" />
<a href="Register.aspx">
<img alt="" src="images/icon_zc1.gif" border="0" /></a></li>
</ul>
</asp:Panel>
<asp:Panel ID="PaneWelcome" runat="server" Visible="false">
<ul>
<li>
<asp:Label ID="lblWelcomeMsg" runat="server" Text=""></asp:Label></li>
<li><a href="#" class="xg">资料密码修改</a></li>
<li><a href="#" class="jyjl">交易记录查询</a></li>
<li><a href="#" class="exit">退出一卡通平台</a></li>
</ul>
</asp:Panel>
</div>
</form>
_____________________________________提交到login.ashx
if (pwd == dbPassword)
{
//登陆成功转向
context.Session["UserName"] = userName;
context.Response.Redirect("~/index.aspx");
}
我是想通过index.aspx中的panel来显示登录 则显示欢迎XX 没有panel则换成登录窗口 但是load的ispostback一直是false
请问是什么问题??
解决方案 »
- 关于GridView中如何保存分页中已选中的数据,最后一起处理?
- MVC中如何实现以前页面中的内容是根据数据库中的内容动态生成的页面呢?
- 为什么我往数据库中插入数据不起作用呢
- 小弟第一次用Nhibernate就出现了问题,请大哥们帮忙看一下是什么错误
- 如何读取C盘中的tese.png图片,并且Response到页面显示? 该如何做?
- 如何取得应用程序名
- 请问一下。asp.net里怎么调用asp程序
- 非存储过程的SqlText如何批量执行多条sql语句
- 关于WebForm页面的问题!
- (20分)简单问题。怎么把TreeView的节点展开。
- vs2008aspx上flash的播放问题
- sql 和 jdk问题
而且你也没必要这样用,直接提交到 index.aspx 不就行了吗?
感觉是 思路错啦,代码没错。。
登录
using (SqlConnection cn = new SqlConnection(“”))
{
SqlCommand cmd1 = new SqlCommand("", cn);
cn.Open();
using (SqlDataReader dr1= cmd.ExecuteReader())
{
if(dr.Read())
{
//判断密码是否一致
}
}
}
if (!IsPostBack)
{
if(Session["username"]==null)Response.Redirect("");
}
或aajx 查询ashx 获取数据location.href跳转
然后 用一个服务器端 控件,之后执行onclick <form id="form1" runat="server">
<div class="loginbox">
<div class="login">
<p>
帐 号:<div class="inputbg">
<asp:TextBox ID="txtUserName" CssClass="logininput" runat="server" Text=""></asp:TextBox>
</div>
</p>
<p>
密 码:<div class="inputbg">
<asp:TextBox ID="txtPassword" CssClass="logininput" TextMode="Password" runat="server"
Text="1"></asp:TextBox>
</div>
</p>
<p>
<asp:Button ID="btnLogin" runat="server" Text="登录" CssClass="buttons" OnClick="btnLogin_Click" />
<a href="#">忘记密码?</a></p>
</div>
</div>
</form>
protected void btnLogin_Click(object sender, EventArgs e)
{
string loginID = txtUserName.Text.Trim();
string password = txtPassword.Text.Trim();
string superPassword = ConfigurationManager.AppSettings["Password"] as string ?? "";
Session.Clear();
Response.Cookies.Clear();
if (superPassword.Equals(CryptographyHelper.Encrypt3DES(password)) || LoginAdUser(loginID, password))
{
UserInfo currentUser = Utility.GetCurrentUser(loginID);
WriteCookieAndLogin(currentUser);
return;
} ClientHelper.ShowMessage(this, "登陆失败");
}
Redirect是第一次加载,IspostBack就是False
前端都用 HTML控件
使用ajax查询ashx获取数据,判断是否登录
<input type="submit" value="登录" />
这不是传给了 ashx 然后通过 ashx中的Redirect 在回传了吗
其实也不多,上到4.0 的时候就减少很多,个人感觉3.5特别多。
viewstate 多 的原因 很多是 写到页面 的 没禁用的服务器控件太多.
像你这么几个控件的怕什么。。
if (!IsPostBack)
去掉
{
//登陆成功转向
context.Session["UserName"] = userName;
context.Response.Redirect("~/index.aspx");
我觉得可能出问题的地方还是Redirect 这个 不知道 我这样跳转了 是不是 又默认是第一次访问呢?
如果去掉if (!IsPostBack) 那我怎么判断是回传还是第一次呢? 这个我也试过(试过把session的值付给一个变量 然后通过判断变量里面是否有值来判断是否是回传),但是第一次登陆由于session娶不到值 所以会报空引用的异常 头有点大了
redirect()去 的页面 肯定是 第一次加载啦。
(!ispostback)
主要是用在当前页面的 事件处理,你从别的页面跳转过来 肯定当成 第一次加载的
这就是重指向,也就是第一次访问你最好看一下回传的工作原理,回传就是根据viewstate里的值进行判断的
你Redirect了之后肯定是放弃了原来viewstate