高分求 gridviewh绑定xml问题

lcglvgn 2010-02-06 02:14:31
xml结构

<?xml version="1.0" standalone="yes"?>
<content>
<gallery Name="测试" Folder="92012aed-9092-4154-9b11-b08886b9944a">
<image Thumb="thum_IMG_4518.jpg" Large="IMG_4518.jpg" Caption="牛老师的工笔画作品" Colour="3a3f36">
<copy>牛老师的工笔画作品</copy>
</image>

</gallery>
</content>


string xmlPath = "~/gghdch/content.xml";
public string typeID
{
get { if (ViewState["typeID"] != null) { return (string)ViewState["typeID"]; } return null; }
set { if (ViewState["typeID"] != null) { ViewState["typeID"] = value; } else { ViewState.Add("typeID", value); } }
}
public string Folder
{
get { if (ViewState["Folder"] != null) { return (string)ViewState["Folder"]; } return null; }
set { if (ViewState["Folder"] != null) { ViewState["Folder"] = value; } else { ViewState.Add("Folder", value); } }
}
protected void Page_Load(object sender, EventArgs e)
{
if (Session["sysID"] != null)
{
if (!IsPostBack)
{
typeID = Request.QueryString["typeID"];

Folder = Request.QueryString["Folder"];
Bind();

}
}
else
{


Response.Redirect("syslogin.aspx");
}


}


private void ResetParameter()
{
GridView1.EditIndex = -1;
Bind();
}

private void Bind()
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(xmlPath));
if (ds.Tables.Count > 0)
{

DataTable dt = new DataTable();
dt = ds.Tables[1];
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
string s = dt.Rows[i]["gallery_Id"].ToString();
if (dt.Rows[i]["gallery_Id"].ToString() != typeID)
{
dt.Rows.RemoveAt(i);
}
}
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
this.GridView1.UpdateAfterCallBack = true;

}
}

//编辑事件
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
Bind();
GridViewRow row = GridView1.Rows[e.NewEditIndex];
for (int i = 3; i < row.Cells.Count - 1; i++)
{
TextBox tb = (TextBox)row.Cells[i].Controls[0];
tb.Width = 50;
}

}
//更新事件
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

GridViewRow row = GridView1.Rows[e.RowIndex]; //获得当前行
int numCell = row.Cells.Count; //共几列单元格(包含Edit和Delete 2列)
int currentRow = row.DataItemIndex; //对应DataSet对应的行索引
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(xmlPath));
DataTable dt = new DataTable();
dt = ds.Tables[1];
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
string s = dt.Rows[i]["gallery_Id"].ToString();
if (dt.Rows[i]["gallery_Id"].ToString() != typeID)
{
dt.Rows.RemoveAt(i);
}
}
DataRow dr;

dr = ds.Tables[1].Rows[row.DataItemIndex]; //找到对应与DataSet行
string[] str = null; //此数组定义表的列名
str = new string[] { "copy", "Thumb", "Large", "Caption", "Colour" };
int j = 0;
for (int i = 3; i < numCell - 1; i++)
{
string cText = ((TextBox)row.Cells[i].Controls[0]).Text;
string s = str[j];
dr[str[j]] = cText;

j++;
}

ds.WriteXml(Server.MapPath(xmlPath)); //将修改写入Table.xml
ResetParameter();
}
//取消
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
ResetParameter();
}
//删除
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex];
int curr = row.RowIndex;
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(xmlPath));
DataTable dt = new DataTable();
dt = ds.Tables[1];
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
string s = dt.Rows[i]["gallery_Id"].ToString();
if (dt.Rows[i]["gallery_Id"].ToString() != typeID)
{
dt.Rows.RemoveAt(i);
}
}
DataRow dr = ds.Tables[1].Rows[curr];
dr.Delete();
ds.WriteXml(Server.MapPath(xmlPath));
ResetParameter();
}

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
Bind();
}
//添加类别内容
protected void btnOK_Click(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(xmlPath));
DataTable dt = ds.Tables[1];
DataRow dr = dt.NewRow();
string fileExt = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
if (fileExt == ".jpg" || fileExt == ".jpeg" || fileExt == ".png" || fileExt == ".gif")
{
string OriPath = Server.MapPath("~/gghdch/" + Folder + "/" + FileUpload1.FileName);
FileUpload1.PostedFile.SaveAs(OriPath);
string thumName = Server.MapPath("~/gghdch/" + Folder + "/" + "thum_" + FileUpload1.FileName);
thumbnail.MakeThumbnail(OriPath, thumName, 50, 50, "HW");
}
else
{
Anthem.Manager.AddScriptForClientSideEval("alert('上传文件不是图片请重新上传')");
return;
}
dr["copy"] = txtCopy.Text;
dr["Thumb"] = "thum_" + FileUpload1.FileName;
dr["Large"] = FileUpload1.FileName;
dr["Caption"] = txtCaption.Text;
dr["Colour"] = "3a3f36";
dr["gallery_Id"] = typeID;
dt.Rows.Add(dr);
ds.WriteXml(Server.MapPath(xmlPath));
Anthem.Manager.AddScriptForClientSideEval("alert('上传成功')");
Bind();
}


我想编辑image标签里面的属性 可以更新了之后还是原来的值 有人能帮忙解答下吗
...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-02-06
  • 打赏
  • 举报
回复
DataRow 内容是否正确
遍历XML删除节点
XmlNodeList xnl=xmlDoc.SelectSingleNode("").ChildNodes;
foreach(XmlNode xn in xnl)
{
XmlElement xe=(XmlElement)xn;

}
xmlDoc.Save("a.xml");
lcglvgn 2010-02-06
  • 打赏
  • 举报
回复
也就是出来本分类的内容被删除了 还有别的分类的内容被删除了 能说明是为什么吗 怎么解决
lcglvgn 2010-02-06
  • 打赏
  • 举报
回复
那个问题解决了 现在有一个新的问题 当我删除的时候会删除很多行

[code=C#]
GridViewRow row = GridView1.Rows[e.RowIndex];
int curr = row.RowIndex;
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath(xmlPath));
dr = ds.Tables[1].Rows[row.DataItemIndex];
DataRow dr = ds.Tables[1].Rows[curr];
dr.Delete();
ds.WriteXml(Server.MapPath(xmlPath));
ResetParameter();
[code]
jack15850798154 2010-02-06
  • 打赏
  • 举报
回复
楼主,调试一样看看问题出在哪里。看看DATATABLE中有值吗?
josephSC 2010-02-06
  • 打赏
  • 举报
回复
跟踪调试过吗?是不是向datatable传递过程中丢失的?
叶子 2010-02-06
  • 打赏
  • 举报
回复
加个断点调试一下,你的更新的代码执行了吗?

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧