url重写网站,删除数据后重新绑定gridview地址又变回真实的了,怎么办页面源
<asp:Button ID="btnDel" runat="server" Text="删除" OnCommand="btnDel_Click" OnClientClick="if(confirm('确定删除?'))return true;else return false;" CommandName='<%# Eval("id")%>' />
private void Bind()
{
GridView1.DataSource = bll.GetNews();
GridView1.DataBind();
}
protected void btnDel_Click(object sender, CommandEventArgs e)
{
bll.Delete(Convert.ToInt32(e.CommandName));
Bind();
}
web.config<RewriterRule>
<LookFor>~/newslist.html</LookFor>
<SendTo>~/news.aspx</SendTo>
</RewriterRule>
<asp:Button ID="btnDel" runat="server" Text="删除" OnCommand="btnDel_Click" OnClientClick="if(confirm('确定删除?'))return true;else return false;" CommandName='<%# Eval("id")%>' />
private void Bind()
{
GridView1.DataSource = bll.GetNews();
GridView1.DataBind();
}
protected void btnDel_Click(object sender, CommandEventArgs e)
{
bll.Delete(Convert.ToInt32(e.CommandName));
Bind();
}
web.config<RewriterRule>
<LookFor>~/newslist.html</LookFor>
<SendTo>~/news.aspx</SendTo>
</RewriterRule>
/// <summary>
/// URL重写以后保持postback地址
/// </summary>
public class PageBase : Page
{
//// <summary>
/// 重写默认的HtmlTextWriter方法,修改form标记中的value属性,使其值为重写的URL而不是真实URL。
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{ if (writer is System.Web.UI.Html32TextWriter)
{
writer = new FormFixerHtml32TextWriter(writer.InnerWriter);
}
else
{
writer = new FormFixerHtmlTextWriter(writer.InnerWriter);
} base.Render(writer); }
} public class FormFixerHtml32TextWriter : System.Web.UI.Html32TextWriter
{
private string _url; // 假的URL public FormFixerHtml32TextWriter(TextWriter writer)
: base(writer)
{
_url = HttpContext.Current.Request.RawUrl;
} public override void WriteAttribute(string name, string value, bool encode)
{
// 如果当前输出的属性为form标记的action属性,则将其值替换为重写后的虚假URL
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
}
base.WriteAttribute(name, value, encode);
}
} public class FormFixerHtmlTextWriter : System.Web.UI.HtmlTextWriter
{
private string _url;
public FormFixerHtmlTextWriter(TextWriter writer)
: base(writer)
{
_url = HttpContext.Current.Request.RawUrl;
} public override void WriteAttribute(string name, string value, bool encode)
{
if (_url != null && string.Compare(name, "action", true) == 0)
{
value = _url;
} base.WriteAttribute(name, value, encode);
}
}页面继承PageBase类.