关于一刷新就执行ROWCOMMAND的问题
今天做东西的时候碰到一个奇怪的问题解决不了,希望高手指教一下~下面的程序,执行的时候,点击按钮的时候GridViewDetail_RowCommand会正常执行,但是执行完了之后我按F5刷新页面,跟踪过去会把GridViewDetail_RowCommand再执行一遍,就是说按F5刷新就会把最近的一次删除或者新增操作再执行一遍。
前台代码如下,继承的母版,但是母版里面没有任何函数:
<asp:GridView ID="GridViewDetail" runat="server" AllowPaging="true" PageSize="20"
ShowFooter="true" AutoGenerateColumns="False" OnPageIndexChanging="GridViewDetail_PageIndexChanging"
OnRowCommand="GridViewDetail_RowCommand" OnRowDataBound="GridViewDetail_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Sort">
<ItemTemplate>
<asp:Label ID="LabelSort" runat="server" Text='<%# Server.HtmlEncode(Eval("Sort").ToString()) %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="PicName">
<ItemTemplate>
<asp:Label ID="LabelPicName" runat="server" Text='<%# Server.HtmlEncode(Eval("AdsTitle").ToString()) %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="TextBoxAddPicName" runat="server" style="width: 140px; height: 15px"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="UploadImage">
<ItemTemplate>
<asp:Label ID="LabelUploadImage" runat="server" Text='<%# Server.HtmlEncode(Eval("ImgPath").ToString()) %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:FileUpload ID="FileUploadImage" runat="server" style="width: 140px; height: 20px"/>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="GoodsLink">
<ItemTemplate>
<asp:Label ID="LabelGoodsLink" runat="server" Text='<%# Server.HtmlEncode(Eval("GoodsID").ToString()) %>'></asp:Label>
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="DropDownListGoodsLink" runat="server" style="width: 140px; height: 15px">
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<%-- <asp:ImageButton ID="ImageButtonDelete" runat="server" CommandName="Del" ImageUrl="../pics/delete.gif" CommandArgument='<%# Server.HtmlEncode(Eval("AdsID").ToString()) %>'/>--%>
<asp:Button ID="Button2" runat="server" Text="Button" CommandName="Del" CommandArgument='<%# Server.HtmlEncode(Eval("AdsID").ToString()) %>'/>
</ItemTemplate>
<FooterTemplate>
<%-- <asp:ImageButton ID="ImageButtonAdd" runat="server" CommandName="Insert" ImageUrl="../pics/add.gif" />--%>
<asp:Button ID="Button1" runat="server" Text="Button" CommandName="Add"/>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台代码:
public partial class Admin_AdvertiseManger : System.Web.UI.Page
{
private string UpFileName = string.Empty;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
adPic1.ShowAdPic("../Images/");
int ImagesCount = new AdsImage().GetImagesCount();
LabelCount.Text = ImagesCount.ToString();
BindView();
}
}
protected void BindView()
{
GridViewDetail.DataSource = new AdsImage().SelectAllAdsImage().Tables[0];
GridViewDetail.DataBind();
}
protected void GridViewDetail_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Add")
{
if (Upfile(sender, e))
{
AdsImage adsImage = new AdsImage();
TextBox TextBoxAddPicName = GridViewDetail.FooterRow.FindControl("TextBoxAddPicName") as TextBox;
adsImage.AdsTitle = TextBoxAddPicName.Text;
adsImage.ImgPath = UpFileName;
DropDownList DropDownListGoodsLink = GridViewDetail.FooterRow.FindControl("DropDownListGoodsLink") as DropDownList;
adsImage.GoodsID = int.Parse(DropDownListGoodsLink.SelectedValue.ToString());
adsImage.Sort = adsImage.GetNewSortNumber();
adsImage.AddAdsImage();
BindView();
}
}
if (e.CommandName == "Del")
{
int id = int.Parse(e.CommandArgument.ToString());
AdsImage adsImage = new AdsImage();
adsImage.AdsID = id;
adsImage.DeleteAdsImage();
BindView();
}
}
protected void GridViewDetail_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridViewDetail.PageIndex = e.NewPageIndex;
BindView();
}
public bool Upfile(object sender, EventArgs e)
{
Random myrd = new Random();
string path, filename, upfilepath; //上传文件路径,上传文件名称
path = Server.MapPath("~/Images/");
filename = DateTime.Now.ToString().Replace("-", "").Replace(":", "").Replace(" ", "") + myrd.Next(1000).ToString(); //上传文件名称
//取得文件的扩展名
FileUpload FileUploadImage = GridViewDetail.FooterRow.FindControl("FileUploadImage") as FileUpload;
string fileExtension = System.IO.Path.GetExtension(FileUploadImage.PostedFile.FileName).ToLower();
UpFileName = filename + fileExtension;
path = path + filename + fileExtension;
if (fileExtension != ".jpg" && fileExtension != ".gif" && fileExtension != ".jpeg")
{
Response.Write("<script>alert('错误!!上传文件类型必须为jpg或者gif!');location='javascript:history.go(-1)';</script>");
return false;
}
else if (FileUploadImage.PostedFile.ContentLength > 240800)
{
Response.Write("<script>alert('错误!!上传文件大小不能超过K!');location='javascript:history.go(-1)';</script>");
return false;
}
else
{
upfilepath = "Images/" + filename + fileExtension;
FileUploadImage.PostedFile.SaveAs(path);
return true;
}
}
protected void GridViewDetail_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType.ToString() == "Footer")
{
FileUpload FileUploadImage = e.Row.FindControl("FileUploadImage") as FileUpload;
FileUploadImage.Attributes.Add("onpropertychange", "showimg(" + FileUploadImage.ClientID + ")");
DropDownList DropDownListGoodsLink = e.Row.FindControl("DropDownListGoodsLink") as DropDownList;
DataTable dt = new GoodsInfo().SelectAllGoodsInfo().Tables[0];
DropDownListGoodsLink.DataSource = dt;
DropDownListGoodsLink.DataTextField = "GoodsName";
DropDownListGoodsLink.DataValueField = "GoodsID";
DropDownListGoodsLink.DataBind();
}
}
}
--------------------编程问答-------------------- 再正常不过了,按F5相当于页面又提交了一次 --------------------编程问答-------------------- 支持楼上的
补充:.NET技术 , ASP.NET