怎么不把代码贴上来看看呢

解决方案 »

  1.   

    导出的页面是这样的///本文件主要使用URL传递查询参数
    ///文件参数说明:
    /// FilterType 1表示过滤器 2表示单个条件 3表示组合条件; 根据FilterType的值显示选中的tab
    /// COOKIE: ProblemListSortExpression,表示事务列表的排序表达式using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Text;
    using System.Data.SqlClient;using Lealsoft.URTracker.BLL;
    using Lealsoft.URTracker.UIL;namespace Lealsoft.URTracker.Web.Pts
    {
    /// <summary>
    /// Summary description for ProblemList.
    /// </summary>
    public class ProblemListExport : PtsPage
    {
    protected HtmlForm Form1;
    protected System.Web.UI.WebControls.CheckBoxList cblFields;
    protected System.Web.UI.WebControls.Button btnExport;
    protected System.Web.UI.WebControls.RadioButton rdoList;
    protected System.Web.UI.WebControls.RadioButton chkDetailed;
    protected System.Web.UI.WebControls.RadioButtonList rblFormat;
    protected Lealsoft.Controls.LinkBar lnkBar;
    protected System.Web.UI.WebControls.Label output;

    //private string pageName = "ProblemList.aspx"; //protected Project _project = null;
    private bool _isProjectFilter = false; //是否是高级查询结果导出
    private void Page_Load(object sender, System.EventArgs e)
    {
    _isProjectFilter = (Request["FilterType"] == "CurrentFilter");
    if (!Page.IsPostBack)
    {
    TrackerIdentity id = (TrackerIdentity)Context.User.Identity;
    if (id.UserState == (int)UserStateCodes.Limited)
    GoToErrorPage("权限错误!", "您是受限用户,不允许查看此页面"); bool bAdminProject = CheckUserProjectPermission(WorkgroupPermissions.AdminProject, false);
    if (_project.OnlyViewOwnProblem && !bAdminProject)
    GoToErrorPage("权限错误!", "您是受限用户,不允许查看此页面"); lnkBar.AddLink("项目列表", "ProjectList.aspx"); if (_isProjectFilter)
    lnkBar.AddLink(_project.Name, "ProjectFilters.aspx?project=" + _projectID.ToString());
    else
    lnkBar.AddLink(_project.Name, "ProblemList.aspx?" + Request.QueryString.ToString()); lnkBar.AddLink("事务列表导出", "#");
    lnkBar.SetHelpFile("problemlistexport"); lnkBar.SetIconPath("~/Images/problem_list.gif"); BindFields();
    }
    }
    private void BindFields()
    {
    cblFields.Items.Clear(); //显示每个项目都具有的,其值具有全局性的字段

    cblFields.Items.Add(new ListItem("编码", "ProblemCode"));
    cblFields.Items.Add(new ListItem("ID","ProblemID"));
    cblFields.Items.Add(new ListItem("标题","Title"));
    cblFields.Items.Add(new ListItem("创建时间","CreateTime"));
    cblFields.Items.Add(new ListItem("是否关闭","IsClosed"));
    cblFields.Items.Add(new ListItem("关闭时间","CloseTime"));
    cblFields.Items.Add(new ListItem("创建用户","CreateUserName"));
    cblFields.Items.Add(new ListItem("当前处理人","AssignedToUserName"));
    cblFields.Items.Add(new ListItem("记录数","RecordNum"));
    cblFields.Items.Add(new ListItem("最后处理人","LastUserName"));
    cblFields.Items.Add(new ListItem("最后处理时间","LastTime"));
    //显示预定义的,但每个项目可自定义值的字段
    URTracker.BLL.Project project = new Project(_projectID);
    if (project.EnableProblemCatalog)
    cblFields.Items.Add(new ListItem("模块","ProblemCatalogName"));
    if (project.EnableProblemType)
    cblFields.Items.Add(new ListItem("事务类型", "ProblemTypeName"));
    cblFields.Items.Add(new ListItem("事务状态", "ProblemStateName"));
    if (project.EnableProblemPriority)
    cblFields.Items.Add(new ListItem("事务优先级", "ProblemPriorityName"));
    if (project.EnableProblemSeverity)
    cblFields.Items.Add(new ListItem("事务严重级", "ProblemSeverityName"));
    if (project.EnableProblemDeadline)
    {
    cblFields.Items.Add(new ListItem("开始时间","StartTime"));
    cblFields.Items.Add(new ListItem("结束期限","Deadline"));
    }
    foreach (ListItem item in cblFields.Items)
    {
    item.Selected = true;
    }

    //User Fields
    SqlDataReader reader = Project.GetUserFields(_projectID);
    while(reader.Read())
    {
    switch(reader["FieldType"].ToString())
    {
    case "BigText":
    case "Text":
    case "Url":
    case "Email":
    case "Integer":
    case "Float":
    case "DateTime":
    case "YesNo":
    case "MultiSelect":
    case "Select":
    cblFields.Items.Add(new ListItem((string)reader["Label"],(string)reader["FieldName"]));
    break;
    }
    }
    }
    #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: This call is required by the ASP.NET Web Form Designer.
    //
    base.OnInit(e);
    InitializeComponent();
    }

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {    
    this.btnExport.Click += new System.EventHandler(this.btnExport_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void btnExport_Click(object sender, System.EventArgs e)
    {
    DataSet problemSet = null;
    if (_isProjectFilter)
    {
    //高级查询结果列表
    if (Session["CurrentFilter"] == null)
    {
    output.Text = "查询时间过长,请重新尝试!";
    return;
    }
    else
    {
    Filter currentFilter = (Filter)Session["CurrentFilter"];
    problemSet = currentFilter.RunFilter(_projectID, CurrentUserID);
    }
    }
    else
    {
    //事务列表导出
    problemSet = _project.GetProblemSetByQueryString(Page.Request, CurrentUserID);
    } //problemSet.Tables[0].DefaultView.Sort = (string) ViewState["DataSortExpression"];

    MyExport exp = new MyExport();
    foreach (ListItem item in cblFields.Items)
    {
    if (item.Selected)
    {
    exp.AddColumn(item.Value, item.Text);
    }
    } if (_isProjectFilter)
    {
    if (rdoList.Checked)
    exp.AddDataTable(problemSet.Tables[0], "项目:" + _project.Name + " 高级查询结果列表 共" + problemSet.Tables[0].Rows.Count.ToString() + "个");
    else
    exp.AddDataTable(problemSet.Tables[0], "项目:" + _project.Name + " 高级查询结果列表 共" + problemSet.Tables[0].Rows.Count.ToString() + "个", "<HR>");

    }
    else
    {
    if (rdoList.Checked)
    exp.AddDataTable(problemSet.Tables[0], "项目:" + _project.Name + " 列表:" + Request["Title"] + " 共" + problemSet.Tables[0].Rows.Count.ToString() + "个");
    else
    exp.AddDataTable(problemSet.Tables[0], "项目:" + _project.Name + " 列表:" + Request["Title"] + " 共" + problemSet.Tables[0].Rows.Count.ToString() + "个", "<HR>");
    }
    switch (rblFormat.SelectedValue.ToLower())
    {
    case "xls":
                        exp.WriteToClient(Response, "ProblemList.xls", "application/vnd.ms-excel");
    break;
    case "doc":
    exp.WriteToClient(Response, "ProblemList.doc", "application/vnd.ms-word");
    break;
    case "htm":
    exp.WriteToClient(Response, "ProblemList.htm", "text/html");
    break;
    case "xml":
    break;
    }
    }

    }
    }
      

  2.   

    在服务器上能够导出,在自己机器上不能够,那就应该是 数据库连接的问题