首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

【100分】疑难有关问题,请高手出招救援!

2012-04-02 
【100分】疑难问题,请高手出招救援!!!!先上代码:HTML codeasp:UpdatePanel IDUpdatePanel1 runatserve

【100分】疑难问题,请高手出招救援!!!!
先上代码:

HTML code
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">    <ContentTemplate>        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="5"              Style="text-align: center" Width="100%" OnRowCommand="GridView1_RowCommand">            <Columns>                <asp:BoundField DataField="Account" HeaderText="账号" ReadOnly="true" />                <asp:TemplateField HeaderText="操作">                    <ItemTemplate>                        <asp:LinkButton ID="btndelete" runat="server" CommandName="Delete" Text="删除" CommandArgument='<%#Eval("Account") %>'                               OnClientClick="return confirm('删除后将无法恢复,确认要删除此行信息吗?')"></asp:LinkButton>                                                       </ItemTemplate>                </asp:TemplateField>            </Columns>            <HeaderStyle CssClass="tbg1" />        </asp:GridView>    </ContentTemplate></asp:UpdatePanel>

C# code
//账号添加正常,列表会刷新,消息通知也会正常弹出protected void btnAdd_Click(object sender, EventArgs e){    string account = this.txtAddAcount.Text.Trim();    SqlParameter[] p = new SqlParameter[] {         new SqlParameter("@account", account)    };    string sql = "insert into account values(@account)";    if (baseclass.ExecuteSql(sql, p) > 0)    {        BindGrid();        ShowMessage("账号添加成功!");        Log.WriteLog("用户:【" + model.Username + "】添加账号【" + account + "】");    }    else    {        ShowMessage("系统忙,请稍后再试!");        Log.WriteLog("用户:【" + model.Username + "】添加账号【" + account + "】失败");    }}//删除不正常,数据删除了,但列表没有刷新,消息也没有弹出,页面没任何反应//单步调试,发现代码运行正常,就是页面没反应protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e){    if (e.CommandName == "delete")    {        string account = e.CommandArgument.ToString().Trim();        string sql = "delete accounts where Account = @account";        SqlParameter[] p = new SqlParameter[] {             new SqlParameter("@account", account)        };        if (baseclass.ExecuteSql(sql, p) > 0)        {            BindGrid();   //刷新GridView1            ShowMessage("账号删除成功!");            Log.WriteLog("用户:【" + model.Username + "】删除账号【" + account + "】");        }        else        {            ShowMessage("系统忙,请稍后再试!");            Log.WriteLog("用户:【" + model.Username + "】删除账号【" + account + "】失败");        }    }    }


求解为什么

[解决办法]
确实够奇怪的?插入正常,删除异常
[解决办法]
实在不行的话,换个方法试试。

不要纠结于一个思路上!
[解决办法]

再就是我觉得你的ShowMessage肯定有问题,<asp:UpdatePanel中提示消息不能用 page.ClientScript.RegisterStartupScript(提示消息,要用
把你的ShowMessage()替换掉如下看看。
ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.Page.GetType(), "123", "alert('系统异常');", true);

[解决办法]
你用CommandName="Delete"
他会再进RowDeleting事件一次,
------解决方案--------------------


你可以让删除成功,来个跳转,先测试下看看!
[解决办法]

C# code
Response.Write("<script>alert('删除成功!'),location.href='FileList.aspx'</script>");
[解决办法]
里边要拼接<script>呢!你写了没!
[解决办法]
你试着跳转页面看行不!
[解决办法]
你把CommandName="Delete"改为CommandName="Del" 试试 CommandName="Delete" 会触发RowDeleting的事件
[解决办法]
OnClientClick='return confirm("删除以后不能恢复,你确定要删除吗?")'

注意看你的 引号
[解决办法]
if (baseclass.ExecuteSql(sql, p) > 0)

跟踪这句

[解决办法]
直接把事件放RowDeleting里面去吧
或者换个CommandName
[解决办法]
你是不是在PreRender中做了什么操作了?
[解决办法]
不弹消息,那你在网页源代码中,能看到那些JS代码吗?
[解决办法]
就是啊,你看页面源码里有
账号删除成功 吗

热点排行