|
.net 求救 (Server.MapPath)
[复制链接]
|
|
发表于 1-8-2006 10:29 AM
|
显示全部楼层
|
|
|
|
|
|
|

楼主 |
发表于 1-8-2006 01:57 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 1-8-2006 02:15 PM
|
显示全部楼层
1) EnableViewState = true (可以postback)
2) 把sql statement connection 放在:
if not ispostback then
end if |
|
|
|
|
|
|
|

楼主 |
发表于 1-8-2006 03:26 PM
|
显示全部楼层
原帖由 笨陈 于 1-8-2006 02:15 PM 发表
1) EnableViewState = true (可以postback)
2) 把sql statement connection 放在:
if not ispostback then
end if
噢,可以了,谢谢。。
C#的写法是
if (!(Page.IsPostBack))
{
}
可是很奇怪为什么我刚才没放postback也能update。。
[ 本帖最后由 shinelynn 于 1-8-2006 03:36 PM 编辑 ] |
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 10:54 AM
|
显示全部楼层
我先用用户名"ABC"进系统,Session["User"] = "ABC",browse过的page有1.aspx和2.aspx。。然后log out,log out时已经放了Session.RemoveAll()和Session.Abandon()
过后,我又用回同一个browser,用户是"XYZ",Session["User"] = "XYZ"。"XYZ"只有authorize看1.aspx,不能进入2.aspx,当我想进入1.aspx时,Session["User"] 对,可是假如我manually type 2.aspx在browser的address时,它的session automatically换去第一个user "ABC"了。。在我按log out时,它才跑回"XYZ",然后再按log out,才退出系统。
看来我在"ABC" log out 时,并没有完全的remove掉Session["User"]的value,有人遇过这样的问题吗?怎么解决? |
|
|
|
|
|
|
|
发表于 2-8-2006 11:22 AM
|
显示全部楼层
原帖由 shinelynn 于 2-8-2006 10:54 AM 发表
我先用用户名"ABC"进系统,Session = "ABC",browse过的page有1.aspx和2.aspx。。然后log out,log out时已经放了Session.RemoveAll()和Session.Abandon()
过后,我又用回同一个browser, ...
试试看logout 的时候 SESSION["User"]="" |
|
|
|
|
|
|
|
发表于 2-8-2006 12:44 PM
|
显示全部楼层
原帖由 shinelynn 于 2-8-2006 10:54 AM 发表
我先用用户名"ABC"进系统,Session = "ABC",browse过的page有1.aspx和2.aspx。。然后log out,log out时已经放了Session.RemoveAll()和Session.Abandon()
过后,我又用回同一个browser, ...
我想, 你的资料库里第一个 user 应该是 ABC 吧. 不是你没清除 session, 而是你没在每一页检查 session 是否存在和正确. |
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 01:12 PM
|
显示全部楼层
原帖由 弥勒 于 2-8-2006 11:22 AM 发表
试试看logout 的时候 SESSION["User"]=""
试过了。。不能。。 |
|
|
|
|
|
|
|
发表于 2-8-2006 01:22 PM
|
显示全部楼层
原帖由 shinelynn 于 2-8-2006 01:12 PM 发表
试过了。。不能。。
LOGIN之前弄那个SESSION["USER"=""; |
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 01:22 PM
|
显示全部楼层
原帖由 goatstudio 于 2-8-2006 12:44 PM 发表
我想, 你的资料库里第一个 user 应该是 ABC 吧. 不是你没清除 session, 而是你没在每一页检查 session 是否存在和正确.
有,有查。而database里"ABC"并不是第一个user。其实我有把Session["User"] display在我的page里,所以"ABC" log in时,那label就回display"ABC","XYZ" log in时,那label就display "XYZ",可是当我manual type 之前已经log out 了的"ABC" visit 过可是"XYZ"没visit过的page时,我的Session ["User"]却会变成"ABC"了。要是我refresh那页一次,"ABC"不见了却又变回"XYZ"。。 |
|
|
|
|
|
|
|
发表于 2-8-2006 01:41 PM
|
显示全部楼层
原帖由 shinelynn 于 2-8-2006 01:22 PM 发表
有,有查。而database里"ABC"并不是第一个user。其实我有把Session display在我的page里,所以"ABC" log in时,那label就回display"ABC","XYZ" log in时,那label就 ...
照酱推断。。。偶应该知道问题了。。。
你用ABC LOGIN 后。。VISIT过那个PAGE。。
然后呢那个LABEL就SHOW ABC 咯。。。
过后你LOGOUT的时候因为那个PAGE没有POSTBACK。。。
所以还是SHOW着ABC吧。。。
你用Server.Transfer("xxx.aspx)还是redirect?
goatstudio你有什么想法吗。。。 |
|
|
|
|
|
|
|

楼主 |
发表于 2-8-2006 04:40 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 2-8-2006 04:52 PM
|
显示全部楼层
原帖由 shinelynn 于 2-8-2006 04:40 PM 发表
用redirect,可是我用"XYZ" log in时它已经show "XYZ" 了啊?
啊,做programming眼睛很痛。。
private void lbLogOut_Click(object sender, System.EventArgs e)
{
Sess ...
我看是因为没有POSTBACK。。。试下用SERVER。TRANSFER 看看。。
偶是说从别的PAGE去那个SHOW着ABC的时候用SERVER。TRANSFER。。
偶也是ASP。NET新手。。。。
希望表见怪。
[ 本帖最后由 弥勒 于 2-8-2006 04:54 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 3-8-2006 01:56 AM
|
显示全部楼层
原帖由 shinelynn 于 2-8-2006 01:22 PM 发表
有,有查。而database里"ABC"并不是第一个user。其实我有把Session["User"] display在我的page里,所以"ABC" log in时,那label就回display"ABC","XYZ" log in时,那label就display "XYZ",可是当我manual type 之前已经log out 了的"ABC" visit 过可是"XYZ"没visit过的page时,我的Session ["User"]却会变成"ABC"了。要是我refresh那页一次,"ABC"不见了却又变回"XYZ"。。
按照这样的情况... 很可能是 cache 的问题.
Internet Explorer -> Tools -> Internet Option -> Settings -> Every visit to the page. |
|
|
|
|
|
|
|

楼主 |
发表于 3-8-2006 07:48 AM
|
显示全部楼层
原帖由 goatstudio 于 3-8-2006 01:56 AM 发表
按照这样的情况... 很可能是 cache 的问题.
Internet Explorer -> Tools -> Internet Option -> Settings -> Every visit to the page.
可以了。。谢谢。。什么是cache?
可是。。我不能肯定用户的setting都是这样啊。。 我找看有什么方法用户一log in,IE的setting会automatically换掉。。 |
|
|
|
|
|
|
|
发表于 3-8-2006 09:16 AM
|
显示全部楼层
原帖由 shinelynn 于 3-8-2006 07:48 AM 发表
可以了。。谢谢。。什么是cache?
可是。。我不能肯定用户的setting都是这样啊。。 我找看有什么方法用户一log in,IE的setting会automatically换掉。。
通常会这样是设计出了缺陷, 或某些原因导致你的 data 被 chache 着.
我现在无法告诉你出了什么缺陷. 但是, 要解决的话, 是可以的.
1. 有个 clear cache 的方法... 看这里:
http://www.ondotnet.com/pub/a/do ... /cachingaspnet.html
2. 真的没办法的话, 在每一次去这个 page, 放一个 random dummy number 在后面. |
|
|
|
|
|
|
|

楼主 |
发表于 10-8-2006 12:46 PM
|
显示全部楼层
原帖由 goatstudio 于 3-8-2006 09:16 AM 发表
通常会这样是设计出了缺陷, 或某些原因导致你的 data 被 chache 着.
我现在无法告诉你出了什么缺陷. 但是, 要解决的话, 是可以的.
1. 有个 clear cache 的方法... 看这里:
http://www.ondotnet.com/pub/ ...
谢谢。。可是放了clear cache的code,还是不可以。。我再看看怎样。。 |
|
|
|
|
|
|
|

楼主 |
发表于 10-8-2006 12:53 PM
|
显示全部楼层
很奇怪我的datagrid,我allow paging,可是它的"next"并不能用,datagrid 还是 display着page 1的record。。有什么地方我忘了set吗? |
|
|
|
|
|
|
|

楼主 |
发表于 10-8-2006 01:11 PM
|
显示全部楼层
虽然觉得这不是程序错误所造成,还是放上来。。希望大家可以帮我看看。。

aspx 里的datagrid
<asp:datagrid id="DGUserList" style="Z-INDEX: 103; LEFT: 17px; POSITION: absolute; TOP: 168px" runat="server" BorderStyle="Double" AllowPaging="True" BorderWidth="3px" CellPadding="3" AutoGenerateColumns="False">
<AlternatingItemStyle BackColor="#E0E0E0"></AlternatingItemStyle>
<HeaderStyle BackColor="Silver"></HeaderStyle>
<FooterStyle BackColor="Silver"></FooterStyle>
<Columns>
<asp:BoundColumn DataField="USER_ID" HeaderText="User ID">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="USER_NAME" HeaderText="Name">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="USER_TEL" HeaderText="Tel No">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="USER_FAX" HeaderText="Fax No">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="USER_EMAIL" HeaderText="Email">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="USER_GROUP" HeaderText="Group">
<ItemStyle Wrap="False"></ItemStyle>
</asp:BoundColumn>
<asp:HyperLinkColumn Text="Edit/Delete" DataNavigateUrlField="User_ID" DataNavigateUrlFormatString="edituser.aspx?user_id={0}"></asp:HyperLinkColumn>
</Columns>
</asp:datagrid>
aspx.cs里的程序
private void Create_UserList()
{
//DataServer = a class where I put all the functions
DataServer DS = new DataServer();
DataTable dt = new DataTable();
//ListData is a function in DataServer that return a DataTable for "select" sql
dt = DS.ListData("SELECT * FROM TBL_USER ORDER BY USER_ID");
DataView dv = new DataView(dt);
//DGUserList is the DataGrid Name
DGUserList.DataSource = dv;
DGUserList.DataBind();
}
[ 本帖最后由 shinelynn 于 10-8-2006 01:13 PM 编辑 ] |
|
|
|
|
|
|
|
发表于 11-8-2006 12:42 AM
|
显示全部楼层
你的 paging code 呢? 我的意思是说当 page index change 的时候的 code. |
|
|
|
|
|
|
| |
本周最热论坛帖子
|