高分求 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标签里面的属性 可以更新了之后还是原来的值 有人能帮忙解答下吗
...全文
161 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
  • 打赏
  • 举报
回复
加个断点调试一下,你的更新的代码执行了吗?
鼎拨神器 4.02 软件描述 ====================== 一、软件简介 鼎拨神器是一款面向拨号场景的桌面工具软件,提供账号批量拨号、拨号状态管理、日志留痕等功能,适用于需要频繁切换拨号账号的使用场景。软件界面简洁、操作直观,账号配置与管理一体化,开箱即用。 二、核心功能 1. 账号拨号:支持多账号配置,账号与密码以"空格或 Tab 键"分隔,可从表格(一列账号、一列密码)直接复制粘贴导入,批量管理、快速切换。 2. 动态等待:拨号成功后支持 1-60 秒动态等待时长,可有效规避连续拨号过快导致的失败,提升拨号成功率。 3. 流量选项:内置流量模式选项(4.0 版本新增),按需选择,灵活适配不同拨号需求。 4. 日志留痕: - dial_log.xls:最近一次拨号记录; - dial_log_日期.txt:全部拨号记录,按天归档,方便追溯与统计。 5. 图标美化:4.02 版本窗口左上角与任务栏统一应用专属图标,界面更规范。 三、版本更新记录 - 版本 4.02:修复了一些已知问题,优化窗口图标显示。 四、目录结构说明 - 鼎拨神器.exe:主程序,双击启动。 - Launcher_ForExe.exe:拨号调度启动器。 - Program 文件夹:软件内部文件,请勿删除。 - Program\dial.exe:核心拨号组件。 - accounts.txt:账号密码配置文件(账号与密码间用一个空格或 Tab 键隔开)。如不慎删除,请以"accounts.txt"命名自建文件即可恢复使用。 - rz 文件夹:日志文件夹,自动生成拨号记录。 建议每次拨号时将最后一个账号设为自己固有的账号,避免前面所有账号拨号不成功。 详细条款请参阅软件包内《软件使用授权及免责声明》。

62,271

社区成员

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

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

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

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