xmldatasource+gridview进行删除操作,数据库中的数据删除了,但是gridview不更新
我尝试了在page_load中添加gridview.databind(),发现这样添加后对数据库的操作九五小了。而如果把gridview.databind()放在删除按钮函数的末尾,则时好时坏。不知道为什么,请高手指教!
下面是部分代码:
protected void Page_Load(object sender, EventArgs e)
{
BtnDelete.Attributes.Add( "onclick ", "return confirm( '确定要删除这些记录吗? ') ");
TextBox1.Text = "null ";
if (!IsPostBack) { GridView1.DataBind(); }
}
protected void BtnDelete_Click(object sender, EventArgs e)
{
int i;
String sSearchRank;
XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(Server.MapPath( "../XMLFile.xml "));
XmlNode XmlRoot = XmlDoc.DocumentElement;
XmlNode XmlSchNode;
for (i = 0; i < GridView1.Rows.Count; i++)
{
if (((CheckBox)GridView1.Rows[i].FindControl( "ChkSel ")).Checked == true)
{
sSearchRank = GridView1.DataKeys[i].Value.ToString();
XmlSchNode = XmlRoot.SelectSingleNode( "Record[@rank= ' " + sSearchRank + " '] ");
if (XmlSchNode != null)
{
XmlSchNode.ParentNode.RemoveChild(XmlSchNode);
String bmpfilename = String.Format( "picsource/image{0}.bmp ", sSearchRank);
String path = String.Format(Server.MapPath( "../ ") + bmpfilename);
FileInfo filedel = new FileInfo(path);
if (filedel.Exists)
{
filedel.Delete();
}
}
else
{
XmlDataSource1.XPath = null;
Response.Write( " <Script language=JavaScript> alert( '节点不存在或已被删除 '); </Script> ");
}
}
}
XmlDoc.Save(Server.MapPath( "../XMLFile.xml "));
XmlDataSource1.XPath = null;
}
}
[解决办法]
重新绑定一下gridview
[解决办法]
DataSource 的cache问题
把相关属性设置一下就行
例如,下面的 SqlDataSourceControl 被配置为使用可变过期策略,过期时间为 10 分钟。
<asp:SqlDataSource ID= "SqlDataSource1 "EnableCaching= "true "CacheExpirationPolicy= "Sliding "CacheDuration= "600 "ConnectionString= "Server=localhost;database=Pubs "SelectCommand= "SELECT Title FROM Titles "Runat= "server " />
没用过xmlDataSource不知道怎么样
[解决办法]
重新绑定一下gridview
凡是刷新数据,都需要重新绑定一下.因为你做的是B/S程序.