佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: shinelynn

.net 求救 (Server.MapPath)

[复制链接]
 楼主| 发表于 11-8-2006 07:52 AM | 显示全部楼层
原帖由 goatstudio 于 11-8-2006 12:42 AM 发表
你的 paging code 呢? 我的意思是说当 page index change 的时候的 code.


huh,它不是auto帮我bind好了的吗?我在page index change的时候并没有写code。。我是不是应该把DGUserList.PageIndexChanged 放在DGUserList_SelectedIndexChanged里?还是在page_load里?
回复

使用道具 举报


ADVERTISEMENT

发表于 11-8-2006 09:05 AM | 显示全部楼层
原帖由 shinelynn 于 11-8-2006 07:52 AM 发表


huh,它不是auto帮我bind好了的吗?我在page index change的时候并没有写code。。我是不是应该把DGUserList.PageIndexChanged 放在DGUserList_SelectedIndexChanged里?还是在page_load里?


你得自行写 code... 我通常会放在 PageIndexChanged 的 event 里.

例子:

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)

{
  this.DataGrid1.CurrentPageIndex = e.NewPageIndex;
  this.DataGrid1.DataSource = dv; // 你的 dataview
  this.DataGrid1.DataBind ();                                \                       
}
回复

使用道具 举报

 楼主| 发表于 11-8-2006 09:07 AM | 显示全部楼层
谢谢提醒关于pageindexchanged的event,要不然我根本不知道有这东西。。不好意思我没读关于.net的书,我是边做边学的。不是懒啊,是因为还要支援用户又要写程序。。可是觉得c#.net 也很好学的,天天新发现。

好,话说回来,我读了些tutorial,把OnPageIndexChanged="PageIndexChanged" 加在html code的<asp:datagrid>里,然后在.aspx.cs写这

public void PageIndexChanged(Object sender, DataGridPageChangedEventArgs
e)
{
        DGUserList.CurrentPageIndex = e.NewPageIndex;
}

可是很奇怪,我必须click两次“>”,我的page才会跑去另一个page,“<”也是一样,必须click两次才可以走回前一页,怎么会这样。。。。。。
回复

使用道具 举报

 楼主| 发表于 11-8-2006 09:16 AM | 显示全部楼层
原帖由 goatstudio 于 11-8-2006 09:05 AM 发表


你得自行写 code... 我通常会放在 PageIndexChanged 的 event 里.

例子:

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)

{
...


datagrid的datasource必须从新bind过的吗?假如这样的话,我又有点不明白了。我的dataview已经是在datagrid load时bind了的,要是我从新再bind一次,它不是跑回第一页了吗?
回复

使用道具 举报

发表于 11-8-2006 09:21 AM | 显示全部楼层
原帖由 shinelynn 于 11-8-2006 09:16 AM 发表


datagrid的datasource必须从新bind过的吗?假如这样的话,我又有点不明白了。我的dataview已经是在datagrid load时bind了的,要是我从新再bind一次,它不是跑回第一页了吗?


正确的做法应该是

1. 第一次 load 的时候 bind, 你可以用 IsPostBack 查到.
2. 每一个特定 event 的时候才 bind, 例如说 PageIndexChanged.
回复

使用道具 举报

 楼主| 发表于 11-8-2006 09:35 AM | 显示全部楼层
原帖由 goatstudio 于 11-8-2006 09:21 AM 发表


正确的做法应该是

1. 第一次 load 的时候 bind, 你可以用 IsPostBack 查到.
2. 每一个特定 event 的时候才 bind, 例如说 PageIndexChanged.


说真的,我不知道ispostback是拿来做什么的

public void PageIndexChanged(object sender, DataGridPageChangedEventArgs
e)
{
        DGUserList.CurrentPageIndex = e.NewPageIndex;
        Create_UserList();
}

可以了,我bind多一次,就可以了。。我想想,应该明白为什么要这样了。。datagrid by default的pageindex是0,所以data grid第一次load的时候是第一页的。假如有pageindexchanged的话,我们就把DGUserList.CurrentPageIndex set去新的一页。要是data grid在load多一次的话,它就会display data grid的current page(新页)。。

可是我很奇怪要是我们没从新bind它,为什么click了next两次之后我还是可以去到第二页。。
回复

使用道具 举报

Follow Us
发表于 11-8-2006 10:12 AM | 显示全部楼层
原帖由 shinelynn 于 11-8-2006 09:35 AM 发表


说真的,我不知道ispostback是拿来做什么的

public void PageIndexChanged(object sender, DataGridPageChangedEventArgs
e)
{
        DGUserList.CurrentPageIndex = e.NewPageIndex;
        Create_UserLi ...


IsPostBack 是用来辨别此 page 是否重新被 post, 任何一个 page 里的 event 都会导致 page 被 post back.

你这样做的话虽然没问题... 但会导致 data 被重灌两次... 建议你在 Page_Load 那里这样写:

if (!IsPostBack) Create_UserList();
回复

使用道具 举报

 楼主| 发表于 15-8-2006 11:28 AM | 显示全部楼层
原帖由 goatstudio 于 11-8-2006 10:12 AM 发表


IsPostBack 是用来辨别此 page 是否重新被 post, 任何一个 page 里的 event 都会导致 page 被 post back.

你这样做的话虽然没问题... 但会导致 data 被重灌两次... 建议你在 Page_Load 那里这样写:

if  ...


放在postback里面了,谢谢。。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-8-2006 11:29 AM | 显示全部楼层
rbDisp1是radiobutton来的。我想在用户select它时就enable text field txtRTV;
在它uncheck时就disable掉txtRTV,是不是应该写在OnCheckedChanged呢?可是不知道为什么行不通。。

private void rbDisp1_CheckedChanged(object sender, System.EventArgs e)
{
        if (rbDisp1.Checked == true)
        {       
                txtRTV.Enabled = true;
        }
        else
        {
                txtRTV.Enabled = false;
        }                       
}
回复

使用道具 举报

发表于 15-8-2006 02:27 PM | 显示全部楼层
原帖由 shinelynn 于 15-8-2006 11:29 AM 发表
rbDisp1是radiobutton来的。我想在用户select它时就enable text field txtRTV;
在它uncheck时就disable掉txtRTV,是不是应该写在OnCheckedChanged呢?可是不知道为什么行不通。。

private void rbDisp1_Chec ...


建议你用 javascript 来达到这目的.
回复

使用道具 举报

 楼主| 发表于 15-8-2006 04:47 PM | 显示全部楼层
原帖由 goatstudio 于 15-8-2006 02:27 PM 发表


建议你用 javascript 来达到这目的.


用javascript,可以了,谢谢。。可是我奇怪为什么它的oncheckedchanged不能用。。
回复

使用道具 举报

 楼主| 发表于 21-8-2006 12:52 PM | 显示全部楼层
<a href="javascript:window.print()">Print this page</a>

window.print()只能用在IE5,请问有谁知道IE6的话怎么写?要IE5和IE6都可以用的。。
回复

使用道具 举报

发表于 21-8-2006 07:17 PM | 显示全部楼层
原帖由 shinelynn 于 21-8-2006 12:52 PM 发表
<a href="javascript:window.print()">Print this page</a>

window.print()只能用在IE5,请问有谁知道IE6的话怎么写?要IE5和IE6都可以用的。。


IE5/6 一样可以用, 你遇到了什么问题呢? 有没有 error message?
回复

使用道具 举报

 楼主| 发表于 22-8-2006 08:11 AM | 显示全部楼层
原帖由 goatstudio 于 21-8-2006 07:17 PM 发表


IE5/6 一样可以用, 你遇到了什么问题呢? 有没有 error message?


我在网上看到也有好些人在IE6遇到问题,可是没有具体说明是什么。。我的print还是可以用,可是它会先出一个run time error的message box。我click了no之后,还是可以继续printing的process。我已经在别的pc试了,IE5没问题。。


回复

使用道具 举报

发表于 22-8-2006 08:54 AM | 显示全部楼层
这问题有点奇怪...
因为我用着的是 IE6... 没问题.
有没有在别的电脑试看 IE6 + 别的 printer?

另外, 总觉得好象是别的 code 引起的, 也许你把整个 code 放上来看看.
回复

使用道具 举报

 楼主| 发表于 22-8-2006 02:25 PM | 显示全部楼层
原帖由 goatstudio 于 22-8-2006 08:54 AM 发表
这问题有点奇怪...
因为我用着的是 IE6... 没问题.
有没有在别的电脑试看 IE6 + 别的 printer?

另外, 总觉得好象是别的 code 引起的, 也许你把整个 code 放上来看看.


噢,我试了别架电脑的IE6,没问题,version是6.0.2900.2180,WindowsXP。我的是6.0.2800.1106,Windows98。(自己都不敢说出来我这做IT的还在用98)

1. IE 6.0.2900.2180, WinXP - 没问题
2. IE 6.0.2800.1106, Win98 - 有问题
3. IE 5.00.2919.6307, Win98 - 没问题

忘了说这是asp的不是c#.net,是不是因为这样的关系?

因为coding很长很乱,怕放上来你会晕掉,所以我试试看只是这样:

<html>
<body>
Testing Only
<a href="javascript:window.print()">Print this page</a>
</body>
</html>

结果还是像上面一样。。
回复

使用道具 举报


ADVERTISEMENT

发表于 23-8-2006 02:00 AM | 显示全部楼层
原帖由 shinelynn 于 22-8-2006 02:25 PM 发表


噢,我试了别架电脑的IE6,没问题,version是6.0.2900.2180,WindowsXP。我的是6.0.2800.1106,Windows98。(自己都不敢说出来我这做IT的还在用98)

1. IE 6.0.2900.2180, WinXP - 没问题
2. IE 6.0.2800.1 ...


我正在想... 会不会 win98 的问题?
还在用着 win98 没什么... 不是每人都有升级的必要, 这是商业上的一贯做法.
回复

使用道具 举报

 楼主| 发表于 23-8-2006 08:08 AM | 显示全部楼层
原帖由 goatstudio 于 23-8-2006 02:00 AM 发表


我正在想... 会不会 win98 的问题?
还在用着 win98 没什么... 不是每人都有升级的必要, 这是商业上的一贯做法.


是不是所有win98都是用IE5的?可能是我自己upgrade IE的关系吧。。我本来是IE5的。只好等看用户那边有没有问题了。。谢谢啊。。

知道用win98没什么,问题是全公司上下,采购部,计划部,金融部,每个人都换电脑用xp,新人还有flat的monitor。可是我觉得我电脑还可以啦,假如用户投诉我做工慢,我就说我用的是旧电脑咧,要不然拿你的和我换,呵呵。。
回复

使用道具 举报

 楼主| 发表于 24-8-2006 04:48 PM | 显示全部楼层
=====删掉=====

[ 本帖最后由 shinelynn 于 24-8-2006 05:06 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 24-8-2006 04:55 PM | 显示全部楼层
哎呀,看到错误了。。啊。。。。不好意思浪费资源。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT


本周最热论坛帖子本周最热论坛帖子

ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-9-2025 10:50 PM , Processed in 0.202823 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表