<?xml version="1.0" encoding="gb2312"?>
<viewer interval="4000" isRandom="1">
    <item title="图片1" img="images/01.jpg" url="http://www.codepub.com/" target="_blank" />
    <item title="图片2" img="images/02.jpg" url="http://www.codepub.com/" target="_blank" />
    <item title="图片3" img="images/03.jpg" url="http://www.codepub.com/" target="_blank" />
    <item title="图片4" img="images/04.jpg" url="http://www.codepub.com/" target="_blank" />
    <item title="图片5" img="images/05.jpg" url="http://www.codepub.com/" target="_blank" />
</viewer>我想把title、img、url、target 绑定到GridView显示他们的值,请问如何实现,有代码例子最好!

解决方案 »

  1.   

    最近在做一个参数维护的功能,有52中部品,每种部品都对应一个参数表,如果用表的话就要建52张表,这不是客户所希望的,所以决定使用XML作为数据源存储信息,以下是实现的代码:1、XML数据源的文件名为Table.xml,结构如下:
    <Tables>
      <SOP>
        <PitchY>0.40</PitchY>
        <T>0.40</T>
        <B>0.40</B>
        <WM>0.20</WM>
        <WM1>0</WM1>
        <WP>0.40</WP>
        <WP1>0</WP1>
        <R>0.05</R>
        <LM>L-0.2</LM>
        <WCM>0.18</WCM>
        <WCP>0.37</WCP>
      </SOP>
      <SOP>
        <PitchY>2.54</PitchY>
        <T>0.70</T>
        <B>0.80</B>
        <WM>0.60</WM>
        <WM1>1</WM1>
        <WP>0.30</WP>
        <WP1>1</WP1>
        <R>0.05</R>
        <LM>L</LM>
        <WCM>0.50</WCM>
        <WCP>0.80</WCP>
      </SOP>
      <DCHIP>
        <BodySize>1005</BodySize>
        <L>0.50</L>
        <W>0.60</W>
        <D>0.40</D>
        <T>0.20</T>
        <S>0.05</S>
        <R>0.05</R>
        <Wm>0.53</Wm>
        <Lm>0.45</Lm>
      </DCHIP>
      <DCHIP>
        <BodySize>1608</BodySize>
        <L>0.70</L>
        <W>0.90</W>
        <D>0.80</D>
        <T>0.30</T>
        <S>0.05</S>
        <R>0.05</R>
        <Wm>0.85</Wm>
        <Lm>0.60</Lm>
      </DCHIP>
      <DCHIP>
        <BodySize>5750</BodySize>
        <L>1.50</L>
        <W>5.30</W>
        <D>4.10</D>
        <T>0.70</T>
        <S>0.15</S>
        <R>0.05</R>
        <Wm>5.20</Wm>
        <Lm>1.30</Lm>
      </DCHIP>
    </Tables>2、具体代码        string xmlPath = "Calculation/Tables.xml";
            
           //恢复GridView正常状态
            private void ResetParameter()
            {
                gvParameter.EditIndex = -1;
                LoadParameter(ddlShapeType.SelectedValue);
            }        //加载XML并显示在GridView里
            private void LoadParameter(string shapeType)
            {           
                DataSet dsRule = new DataSet();
                dsRule.ReadXml(xmlPath);            DataTable dtRule = dsRule.Tables[shapeType];
                
                gvParameter.DataSource = dtRule;
                gvParameter.DataBind();
            }        //新增事件
            protected void lnbAddNew_Click(object sender, EventArgs e)
            {
                if (ddlShapeType.SelectedValue.Length == 0)
                {
                    lblMsg.Visible = true;
                    lblMsg.Text = "Warning: Please select shape type !";
                    return;
                }
                else if (gvParameter.Rows.Count == 0)
                {
                    lblMsg.Visible = true;
                    lblMsg.Text = "Warning: [" + ddlShapeType.SelectedValue + "] table not exists !";
                    return;
                }                            DataSet ds = new DataSet();
                ds.ReadXml(xmlPath);
                DataTable dt = ds.Tables[ddlShapeType.SelectedValue];            DataRow dr = dt.NewRow();
                dt.Rows.Add(dr);            ds.WriteXml(xmlPath);   //将修改写入Table.xml            ResetParameter();
            }       //编辑事件
            protected void gvParameter_RowEditing(object sender, GridViewEditEventArgs e)
            {
                gvParameter.EditIndex = e.NewEditIndex;
                LoadParameter(ddlShapeType.SelectedValue);            GridViewRow row = gvParameter.Rows[e.NewEditIndex];            //前面2列是Delete、Edit,故从第三列开始
                for (int i = 2; i < row.Cells.Count; i++)
                {
                    TextBox tb = (TextBox)row.Cells[i].Controls[0];
                    tb.Width = 50;
                }
            }       //更新事件
            protected void gvParameter_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                GridViewRow row = gvParameter.Rows[e.RowIndex]; //获得当前行            int numCell = row.Cells.Count;  //共几列单元格(包含Edit和Delete 2列)
                int currentRow = row.DataItemIndex; //对应DataSet对应的行索引            DataSet ds = new DataSet();
                ds.ReadXml(xmlPath);
                DataRow dr;            dr = ds.Tables[ddlShapeType.SelectedValue].Rows[row.DataItemIndex];  //找到对应与DataSet行            string[] str = null;   //此数组定义表的列名            switch (ddlShapeType.SelectedValue)
                {
                    case "SOP":
                        {
                            str =new string[]{ "PitchY", "T", "B", "WM", "WM1", "WP", "WP1", "R", "LM", "WCM", "WCP" };
                            break;
                        }
                    case "DCHIP":
                        {
                            str = new string[] { "BodySize", "L", "W", "D", "T", "S", "R", "Wm", "Lm" };
                            break;
                        }
                }            int j = 0;
                //从第3列开始,前面有2列是Edit和Delete
                for (int i = 2; i < numCell; i++)
                {
                    string cText = ((TextBox)row.Cells[i].Controls[0]).Text;                dr[str[j]] = cText;                j++;
                }            ds.WriteXml(xmlPath);   //将修改写入Table.xml            ResetParameter();
            }        //取消修改
            protected void gvParameter_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
            {
                ResetParameter();
            }       //删除事件
            protected void gvParameter_RowDeleting(object sender, GridViewDeleteEventArgs e)
            {
                GridViewRow row = gvParameter.Rows[e.RowIndex];            int curr = row.RowIndex;
                DataSet ds = new DataSet();
                ds.ReadXml(xmlPath);            DataRow dr = ds.Tables[ddlShapeType.SelectedValue].Rows[curr];
                dr.Delete();
                ds.WriteXml(xmlPath);            ResetParameter();
            }
      

  2.   

    用XmlDataSource设置一下Xpath:/viewer/item/就行了,再在GridView上面对应绑定title,img,url,target就行了
      

  3.   

         
    //加载XML并显示在GridView里   private void LoadParameter(string shapeType) 
            {          
                DataSet dsRule = new DataSet(); 
                dsRule.ReadXml(xmlPath);             DataTable dtRule = dsRule.Tables[shapeType]; 
                
                gvParameter.DataSource = dtRule; 
                gvParameter.DataBind(); 
            } 这里怎么怎么能用到我的XML文件上啊?
    能解释一下这代码吗?
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadParameter();
         } 
     不可以查询出来的
      

  4.   

    //新增事件
      protected void lnbAddNew_Click(object sender, EventArgs e)
      {
      if (ddlShapeType.SelectedValue.Length == 0)
      {
      lblMsg.Visible = true;
      lblMsg.Text = "Warning: Please select shape type !";
      return;
      }
      else if (gvParameter.Rows.Count == 0)
      {
      lblMsg.Visible = true;
      lblMsg.Text = "Warning: [" + ddlShapeType.SelectedValue + "] table not exists !";
      return;
      }     DataSet ds = new DataSet();
      ds.ReadXml(xmlPath);
      DataTable dt = ds.Tables[ddlShapeType.SelectedValue];  DataRow dr = dt.NewRow();
      dt.Rows.Add(dr);  ds.WriteXml(xmlPath); //将修改写入Table.xml  ResetParameter();
      }ddlShapeType 这个是什么?