allyssa 发表于 2014-6-26 20:53:26

C# ASP网站求助 急

本帖最后由 allyssa 于 2014-6-26 20:55 编辑

大家好 第一次发帖 我是新手 刚接触C#和ASP.net 网站别人已经搭好了 目前需要获取用户输入的数据 然后写进XML文件中
网站界面的设计是在EPICOR里 网页是自动实时生成的 写XML的关键是找到ID 但是目前毫无头绪
source code的一部分贴在这里 求大家帮忙指教啊。。。怎么找到ID
CurrConfigPcInputsDataSet.PcInputs.InputName是生成不同的value 如果我没理解错的话。。。
贴出了一些关键部分

    private void LoadConfigurationTest()    {      Epicor.Mfg.BO.PcInputsDataSet CurrConfigPcInputsDataSet = (PcInputsDataSet)Session["CurrConfigPcInputsDataSet"];      Epicor.Mfg.BO.ConfigurationValueDataSet ConfigurationValue = (ConfigurationValueDataSet)Session["CurrConfigConfigurationValueDataSet"];
      btnAddToQuote.Style.Add("left", (int)(330) + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      btnAddToQuote.Style.Add("position", "absolute");      btnAddToQuote.Style.Add("top", -25 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"]) + "px");

      btnCreateNewQuote.Style.Add("left", (int)(440) + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      btnCreateNewQuote.Style.Add("position", "absolute");      btnCreateNewQuote.Style.Add("top", -25 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"]) + "px");

      lblQty.Style.Add("left", 236 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      lblQty.Style.Add("position", "absolute");      lblQty.Style.Add("top", -22 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"]) + "px");      txtQty.Style.Add("left", 273 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      txtQty.Style.Add("position", "absolute");      txtQty.Style.Add("top", -24 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"]) + "px");      //lblIncomplete.Style.Add("left", 390 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      lblIncomplete.Style.Add("left", 575 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      lblIncomplete.Style.Add("position", "absolute");      lblIncomplete.Style.Add("top", -22 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"]) + "px");      lnkCatalog.Style.Add("left", 676 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"]) + "px");      lnkCatalog.Style.Add("position", "absolute");      lnkCatalog.Style.Add("top", -52 + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"]) + "px");
      string IncrementsID;
      ///////////////////////////////////////////// load form ////////////////////////////////////////////////////////////////////////////      for (int i = 0; i <= CurrConfigPcInputsDataSet.PcInputs.Rows.Count - 1; i++)      {            if (CurrConfigPcInputsDataSet.PcInputs.SummaryLabel == "INT" &&!Master.userInfo.AllowInternialOptions   || CurrConfigPcInputsDataSet.PcInputs.Invisible == true)            {                if (CurrConfigPcInputsDataSet.PcInputs.InputName.ToString() != "TXTTEMP_FINISH")                {                  continue;                }            }
            switch (CurrConfigPcInputsDataSet.PcInputs.ControlType.ToString())            {                case "COMBO-BOX":                  DropDownList thisCb = new DropDownList();
                  thisCb.SelectedIndexChanged += new EventHandler(HandlePostBack);
                  thisCb.ID = CurrConfigPcInputsDataSet.PcInputs.InputName;   ///////drop down list///////////
                  thisCb.AutoPostBack = true;                  thisCb.Style.Add("left", (CurrConfigPcInputsDataSet.PcInputs.xPos + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"])) + "px");                  thisCb.Style.Add("position", "Absolute");                  thisCb.Style.Add("top", (CurrConfigPcInputsDataSet.PcInputs.yPos + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"])) + "px");                  thisCb.Style.Add("font-size", "24px");                  thisCb.Style.Add("font-family", "Tahoma");                  thisCb.Style.Add("z-index", "999");                  thisCb.DataSource = CurrConfigPcInputsDataSet.PcInputs.ListItems.Split(',');                  thisCb.Width = CurrConfigPcInputsDataSet.PcInputs.pWidth + 12;                  thisCb.Height = CurrConfigPcInputsDataSet.PcInputs.pHeight;
                  thisCb.TabIndex = (Int16)CurrConfigPcInputsDataSet.PcInputs.TabOrder;
                  thisCb.DataBind();
                  foreach (ListItem li in thisCb.Items)                  {                        li.Text = Server.HtmlDecode(li.Text);                        li.Value = Server.HtmlDecode(li.Value);                  }
                  if (CurrConfigPcInputsDataSet.PcInputs.pHeight == 0 && CurrConfigPcInputsDataSet.PcInputs.pWidth == 0)                  {                        thisCb.Visible = false;                  }
                  SetConfigValue(thisCb, thisCb.ID);
                  if (thisCb.Items.Count > 1)                  {                        thisCb.Items.Insert(0, "");                  }
                  ConfigCell.Controls.Add(thisCb);                  if (CurrConfigPcInputsDataSet.PcInputs.SideLabel != "")                  {                        Label cbl = new Label();   //////////////////// 1/2" Increments///////////////////////////                        cbl.ID = CurrConfigPcInputsDataSet.PcInputs.InputName + "label";
                        cbl.Text = CurrConfigPcInputsDataSet.PcInputs.SideLabel;                        cbl.Style.Add("left", ((CurrConfigPcInputsDataSet.PcInputs.xPos - 200) + int.Parse(ConfigurationManager.AppSettings["ConfiguratorXAxis"])) + "px");                        cbl.Style.Add("width", "195px");                        cbl.Style.Add("position", "Absolute");                        cbl.Style.Add("top", (CurrConfigPcInputsDataSet.PcInputs.yPos + int.Parse(ConfigurationManager.AppSettings["ConfiguratorYAxis"])) + "px");                        cbl.Style.Add("text-align", "right");                        cbl.Style.Add("font-size", "24px");                        cbl.Style.Add("font-family", "Tahoma");                        ConfigCell.Controls.Add(cbl);                  }
                  break;


               default:                  break;            }      }    }


阿甘大手 发表于 2014-6-26 20:55:36

顶一下

ibcadmin 发表于 2014-6-26 20:59:06

CurrConfigPcInputsDataSet.PcInputs.InputName这应该是实体类里的属性吧?
如果是实体的话 你这是怎么赋值的 。
把这个类在贴出来

allyssa 发表于 2014-6-26 21:07:25

灰常感谢!这个我觉得是的
private void SetupConfig()
    {
      //TODO Convert partRev and PartRevSearch calls to BO class
      Epicor.Mfg.BO.Configuration configuration = new Epicor.Mfg.BO.Configuration(((Epicor.Mfg.Core.Session)Session["EpiSession"]).ConnectionPool);
      PartRevSearch partRev = new PartRevSearch(((Epicor.Mfg.Core.Session)Session["EpiSession"]).ConnectionPool);
      ConfigurationSequenceDataSet configDataSet = new ConfigurationSequenceDataSet();
      GeneratedConfigurationDataSet genConfig = new GeneratedConfigurationDataSet();
      PcInputsDataSet pcInputs = new PcInputsDataSet();
      ConfigurationValueDataSet value = new ConfigurationValueDataSet();
      PartRevSearchDataSet revDataSet = new PartRevSearchDataSet();
      string configCode = Request.QueryString["config"];
      string revision;


      ////////////////////////////////////////////////// load database form ///////////////////////////////////////////////////////////////////////////
      if (Session["CurrConfigConfigurationValueDataSet"] == null || Request.QueryString["config"].ToString() != Session["config"].ToString())//DP changed 2nd if pram '.ToString()'
      {
            bool outVar;
            Session["config"] = Request.QueryString["config"];

            revDataSet = partRev.GetRows("PartNum = '" + configCode + "' AND APPROVED=true BY RevisionNum", 100, 0, out outVar);
            int colNum = 0;
            foreach (System.Data.DataColumn c in revDataSet.Tables.Columns)
            {
                if (c.ColumnName == "RevisionNum")
                {
                  colNum = c.Ordinal;
                  break;
                }
            }

            revision = revDataSet.Tables.Rows.ToString();

            Session["revision"] = revision;

            string nonApprovMesg = "";

            configDataSet = configuration.GetConfigurationSequence("INPUTS", "", "", "", "", "", "", "", configCode, revision, out nonApprovMesg);

            genConfig = configuration.GetGeneratedConfiguration("PYI", configCode, revision, "INPUTS", "", "");

            pcInputs = configuration.GetInputs("", configCode, revision, 0, "", "", "INPUTS");
            Session["CurrConfigPcInputsDataSet"] = pcInputs;
            configuration.GetValues("", configCode, revision, "INPUTS", value, 0, "", "", "", genConfig);
            Session["CurrConfigConfigurationValueDataSet"] = value;

            foreach (ConfigurationValueDataSet.ConfigurationValueRow r in value.ConfigurationValue)
            {
                r.RowMod = "U";
            }


            Int32 rowModColumn = 0;

            foreach (System.Data.DataTable t in genConfig.Tables)
            {
                foreach (System.Data.DataColumn c in t.Columns)
                {
                  if (c.ColumnName.ToUpper() == "ROWMOD")
                  {
                        rowModColumn = c.Ordinal;
                        break;
                  }
                }

                foreach (System.Data.DataRow r in t.Rows)
                {
                  r = "U";
                }
            }

            configuration.EnterPage("", configCode, revision, 1, "INPUTS", 1, 0, "", value, out outVar, genConfig);


            HttpContext.Current.Session["CurrConfigConfigurationValueDataSet"] = value;
            HttpContext.Current.Session["CurrentConfigGeneratedConfigurationDataSet"] = genConfig;
      }
      LoadConfigurationTest();
    }

allyssa 发表于 2014-6-26 21:18:24

ibcadmin 发表于 2014-6-26 20:59
CurrConfigPcInputsDataSet.PcInputs.InputName这应该是实体类里的属性吧?
如果是实体的话 你这是怎 ...

还有一个规律 生成的动态ID都是ct100_cphMain_打头
像Single 对应ct100_cphMain_P01_P01_RDO_SorD_0
Duplex 对应ct100_cphMain_P01_RDO_SorD_1
Element Type对应 ct100_cphMain_TEXT5
Sheath Diameter对应 ct100_cphMain_TEXT6
Element Connection 对应ct100_cphMain_TEXT40
Well Type and Bore Size 对应 ct100_cphMain_TEXT8

ibcadmin 发表于 2014-6-26 21:18:53

你这是读取的配置文件里的数据吧?   你检查配置文件里有没有InputName这个键值

allyssa 发表于 2014-6-26 21:37:19

ibcadmin 发表于 2014-6-26 21:18
你这是读取的配置文件里的数据吧?   你检查配置文件里有没有InputName这个键值

嗯 只找到了PcInputs 和ConfigurationValueDataSet的

PcInputsDataSet pcInputs = new PcInputsDataSet();
      ConfigurationValueDataSet value = new ConfigurationValueDataSet();
configDataSet = configuration.GetConfigurationSequence("INPUTS", "", "", "", "", "", "", "", configCode, revision, out nonApprovMesg);

            genConfig = configuration.GetGeneratedConfiguration("PYI", configCode, revision, "INPUTS", "", "");

            pcInputs = configuration.GetInputs("", configCode, revision, 0, "", "", "INPUTS");
            Session["CurrConfigPcInputsDataSet"] = pcInputs;
            configuration.GetValues("", configCode, revision, "INPUTS", value, 0, "", "", "", genConfig);
            Session["CurrConfigConfigurationValueDataSet"] = value;

那个InputName第一次出现就是这句
if (CurrConfigPcInputsDataSet.PcInputs.InputName.ToString() != "TXTTEMP_FINISH")
                {
                  continue;
                }

ibcadmin 发表于 2014-6-26 21:52:27

代码看的太乱了 一看就知道你是复制的源码吧 ,只能看到这了, 在看不出来了

allyssa 发表于 2014-6-28 05:59:31

ibcadmin 发表于 2014-6-26 21:52
代码看的太乱了 一看就知道你是复制的源码吧 ,只能看到这了, 在看不出来了

ID我找到了 但是是在不同的地方print出来 怎么存进一个array里呢 有这方面资料不

ibcadmin 发表于 2014-6-28 09:16:14


int[] a = new int;
for(int i =0;i<ID.Count;i++)
{
a=id
}
页: [1]
查看完整版本: C# ASP网站求助 急