佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: shinelynn

.net 求救 (Server.MapPath)

[复制链接]
 楼主| 发表于 6-9-2006 11:44 AM | 显示全部楼层
之前在data grid的PageIndexChanged可以了,可是现在我用coding来写data grid的column,PageIndexChanged却不能用了,大家帮我看看好不好。。。

Add Data Grid Column
private void Create_Column()
{
        //First Column - Hyperlink
        HyperLinkColumn colSlct = new HyperLinkColumn();
        colSlct.Text="Select";
        colSlct.DataNavigateUrlField="NCMR_T_H_NO";
        colSlct.DataNavigateUrlFormatString="ncmr_report_T.aspx?ncmr={0}&type=T";
        DGList.Columns.Add(colSlct);

        //2nd Column - No       
                BoundColumn colNo = new BoundColumn();
        colNo.DataField = "NCMR_T_H_NO";
        colNo.HeaderText = "No";
        DGList.Columns.Add(colNo);

        //3rd Column - Date
        BoundColumn colDate = new BoundColumn();
        colDate.DataField = "NCMR_T_H_DATE";
        colDate.HeaderText = "Date";
        colDate.DataFormatString = "{0:dd-MM-yyyy}";
        DGList.Columns.Add(colDate);

        //4th Column - Date
        BoundColumn colStatus = new BoundColumn();
        colStatus.DataField = "NCMR_T_H_STATUS";
        colStatus.HeaderText = "Status";
        DGList.Columns.Add(colStatus);

        //5th Column - Created By
        BoundColumn colBy = new BoundColumn();
        colBy.DataField = "NCMR_T_H_BY";
        colBy.HeaderText = "Created By";
        DGList.Columns.Add(colBy);
}

Bind Data
private void Create_List()
{
        string strSql;

        //DataServer - a class where I put all the functions
        DataServer ds = new DataServer();

        //Create new DataTable
        DataTable dt = new DataTable();

        strSql = "SELECT * FROM TBL_NCMR_T_H WHERE ";
        strSql = strSql + " NCMR_T_H_STATUS = 'Open'";
        if (txtNCMR.Text != "")
        {
                strSql = strSql + " AND NCMR_T_H_NO = '" + ds.GetNCMR(Convert.ToInt16(txtNCMR.
Text)) + "'";
        }
        if (txtDate.Text != "")
        {
                strSql = strSql + " AND NCMR_T_H_DATE = #" + txtDate.Text + "#";
        }
        strSql = strSql + " ORDER BY NCMR_T_H_NO";
       
        //List Data - function in DataServer that return DataTable
        dt = ds.ListData(strSql);


        DataView dv = new DataView(dt);

        //DGList is the DataGrid name
        DGList.DataSource = dv;
        DGList.DataBind();
}

Page_Load
private void Page_Load(object sender, System.EventArgs e)
{
        // Put user code to initialize the page here
        if (!(Page.IsPostBack))
        {
                Create_Column();
                Create_List();
                               
        }
}

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

1. Click Next之前


2. Click Next之后, data hilang了。。
回复

使用道具 举报


ADVERTISEMENT

发表于 7-9-2006 09:44 AM | 显示全部楼层
问题应该在于你的 Create_List(), 你的 Create_List() 重灌过 data, 你需要重新制作 column.

我大概了解你要做什么... 给你一个建议... 先试试看:

1. 用 ViewState 把你的 DataTable 暂存起来.
2. 每一次 PageIndex 更换, 重新 assign DataView 进去你的 DataGrid.
回复

使用道具 举报

 楼主| 发表于 7-9-2006 09:59 AM | 显示全部楼层
我也试重新create column,也是不行。。不知道view state是什么,我找tutorial先。。


我刚想到个方法,假如我在.aspx里create datagrid column,

<asp:BoundColumn HeaderText="Date"></asp:BoundColumn>

要如何用coding assign data field给它呢?

我试DGList.Columns[0].... 没有"DataField",只有"HeaderText","Visible"。。
回复

使用道具 举报

 楼主| 发表于 7-9-2006 11:31 AM | 显示全部楼层
可以了。。

HyperLinkColumn hl = (HyperLinkColumn)DGList.Columns[0];
hl.DataNavigateUrlField="NCMR_" + cboType.SelectedValue + "_H_NO";
hl.DataNavigateUrlFormatString="ncmr_report_" + cboType.SelectedValue +
".aspx?ncmr={0}&type=" + cboType.SelectedValue;
                       
BoundColumn bc1 = (BoundColumn)DGList.Columns[1];
bc1.DataField = "NCMR_" + cboType.SelectedValue + "_H_NO";

谢谢。。。
回复

使用道具 举报

 楼主| 发表于 15-9-2006 04:30 PM | 显示全部楼层
很奇怪,我在HTML table里的几个<TD>有放颜色,可是print出来的时候却没颜色的,统统变白色,为什么会这样?


回复

使用道具 举报

 楼主| 发表于 6-10-2006 09:12 AM | 显示全部楼层
我有一页C#.net写来寄信的,可是我的信都在inetpub\wwwroot\Queue的folder里面,我昨天寄,今天来信还是在那folder里面,为什么会这样。
回复

使用道具 举报

Follow Us
发表于 6-10-2006 09:21 AM | 显示全部楼层
原帖由 shinelynn 于 6-10-2006 09:12 AM 发表
我有一页C#.net写来寄信的,可是我的信都在inetpub\wwwroot\Queue的folder里面,我昨天寄,今天来信还是在那folder里面,为什么会这样。


smtp 有运行吗? smtp port 有没有被 firewall block?
回复

使用道具 举报

 楼主| 发表于 6-10-2006 12:45 PM | 显示全部楼层
原帖由 goatstudio 于 6-10-2006 09:21 AM 发表


smtp 有运行吗? smtp port 有没有被 firewall block?


我不知道怎么查smtp port有没有被firewall block住了。。

可是现在可以了,我的SmtpMail.SmtpServer 本来是放localhost的,原来不行的啊?我后来改去公司的email server,就可以了。

但是这样的话,我很奇怪假如我在家写这程序的话,是不是就弄不到电邮了,因为我家并没有email server啊。。。
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 6-10-2006 02:58 PM | 显示全部楼层
请问MMsg是MailMessage,MMsg.From = email address,要怎么在收信人的信箱里display寄信人的姓名,而不是display寄信人的email address?
回复

使用道具 举报

发表于 12-10-2006 10:00 AM | 显示全部楼层
原帖由 shinelynn 于 6-10-2006 02:58 PM 发表
请问MMsg是MailMessage,MMsg.From = email address,要怎么在收信人的信箱里display寄信人的姓名,而不是display寄信人的email address?

试试这样
MMsg.From = "姓名 <someone@Comapny.com>"
回复

使用道具 举报

 楼主| 发表于 13-10-2006 08:27 AM | 显示全部楼层
原帖由 extrem23 于 12-10-2006 10:00 AM 发表

试试这样
MMsg.From = "姓名 <someone@Comapny.com>"


可以了,谢谢。。。。
回复

使用道具 举报

发表于 15-10-2006 05:03 PM | 显示全部楼层
原帖由 shinelynn 于 13-10-2006 08:27 AM 发表


可以了,谢谢。。。。


我的.net 2.0 不能。。我是这样。。

message.From = System.Net.Mail.MailAddress("Admin<a@comp.com> " ) ;

不可以。。
只能这样。。
message.From = System.Net.Mail.MailAddress("a@comp.com" ) ;

[ 本帖最后由 zuying1985 于 15-10-2006 05:05 PM 编辑 ]
回复

使用道具 举报

发表于 15-10-2006 09:03 PM | 显示全部楼层
原帖由 zuying1985 于 15-10-2006 05:03 PM 发表
我的.net 2.0 不能。。我是这样。。
message.From = System.Net.Mail.MailAddress("Admin<a@comp.com> " ) ;
不可以。。
只能这样。。
message.From = System.Net.Mail.MailAddress( ...


我还没用2.0,但这里有你要的答案
http://www.systemnetmail.com/faq/3.2.1.aspx

这里很不错的参考网站
.Net 1.1里的Mail是 Sytem.Web.Mail
http://www.systemwebmail.com/

.Net 2。0里的新的,Sytem.Net.Mail
http://www.systemnetmail.com/

[ 本帖最后由 extrem23 于 15-10-2006 09:07 PM 编辑 ]
回复

使用道具 举报

 楼主| 发表于 16-10-2006 08:26 AM | 显示全部楼层
啊。。有分别的?
回复

使用道具 举报

 楼主| 发表于 15-1-2007 12:54 PM | 显示全部楼层
请问,要如何在C#的codeautouserIE page setupsetting?
比如:
Size: 换去A4
Header Footer: 换去""
Margins: 全换去0.5
回复

使用道具 举报

发表于 16-1-2007 10:56 AM | 显示全部楼层
我不会~不过我也很好奇是否做得到?~

基本上,IE是client.. server side应该control不到任何IE的setting吧?
回复

使用道具 举报


ADVERTISEMENT

发表于 22-1-2007 12:13 PM | 显示全部楼层
IE 是 client side, 有一定的 security 的程度, 基本上你是不能自动帮 client side 转换 page setting 的.

想想看... 如果一个网站可以自动打印上万张... 这样很恐怖...

看这里: http://support.microsoft.com/default.aspx?scid=kb;en-us;820644
回复

使用道具 举报

 楼主| 发表于 22-1-2007 12:46 PM | 显示全部楼层
谢谢。

其实我有这种想法是因为,既然我们可以把IE的page setup用程序call出来,那么
应该有办法换掉里头的setting吧。。

想这样做是因为每个用户的IE page setup都不同,怕报告print出来会很乱水,所
以想把setting固定起来。。

看来让用户自己adjust好了。。
回复

使用道具 举报

发表于 22-1-2007 12:51 PM | 显示全部楼层
原帖由 shinelynn 于 22-1-2007 12:46 PM 发表
谢谢。

其实我有这种想法是因为,既然我们可以把IE的page setup用程序call出来,那么
应该有办法换掉里头的setting吧。。

想这样做是因为每个用户的IE page setup都不同,怕报告print出来会很乱水,所
...


我的做法是, 通常在打印的时候会显示 recommended printer setup.
回复

使用道具 举报

 楼主| 发表于 13-2-2007 12:54 PM | 显示全部楼层
我把Ms Excel的质料直接display在C#.net的page上,做法是这样。。


我先define name在我要的range。


然后在aspx display出资料。

我想把material在每一个location的qty display出来,可是奇怪,我只能display到
Material, Material Description, Loc 2, 和 Grand Total。

Loc 1 和 Loc 3 的不能出来。。为什么会这样?要是我在Ms Excel的define有问题,
那么Grand Total应该不能出来啊?可是就是一些可以display的到一些不行。。

程序:
private void CreateCSInv()
                {
                        String strMaterial;
                           //strMaterial就是ABC
                        strMaterial = Convert.ToString(Session["ItemNo"]);
                           //Connect去Ms Excel
                        String sC;
                        OleDbConnection objConn = new OleDbConnection(sConnectionString);
                        objConn.Open();
               
                        String strSql;
                            //csinfo就是我在Ms Excel define selection range的名字
                        strSql="SELECT * FROM CSINFO WHERE MATERIAL='" + strMaterial + "'";
                        OleDbCommand objCmdSelect =new OleDbCommand(strSql, objConn);
                        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();
                        objAdapter1.SelectCommand = objCmdSelect;
                        DataSet objDataset1 = new DataSet();
                        objAdapter1.Fill(objDataset1, "XLData");
                        DataGrid1.DataSource = objDataset1.Tables[0].DefaultView;
                        DataGrid1.DataBind();

                        objConn.Close();

                }

谢谢。
回复

使用道具 举报

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

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


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

GMT+8, 19-9-2025 05:18 AM , Processed in 0.117358 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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