当前位置:编程学习 > C#/ASP.NET >>

关于一刷新就执行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
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,