UpdatePanel 与 Gridview 的CommandField 更新不了

zscmj 2012-04-09 05:22:05
UpdatePanel 与 Gridview 要实现无刷新增加,修改,删除,分页。 增加,删除,分页 都能运行成功,修改功能未能实现,点击 “编辑” 就会出现“更新”和“取消”。取消没有问题,但是更新这个做不了。每一次输入新的内容,再点击“更新”,它又会变会原来的。

上网查过很多资料。估计是,updatePanel 对 更新按钮调用不了updating 方法。
aspx代码



<%@ Page Language="C#" MasterPageFile="MasterPage.master" AutoEventWireup="true"
CodeFile="RoleInfo.aspx.cs" Inherits="Admin_RoleInsert" Title="设备管理后台系统" %>

<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<link rel="Stylesheet" type="text/css" href="../Admin/css/Modular.css" />
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<div class="webmap">
</div>
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
</asp:ScriptManagerProxy>
<div id="ModularName">
用户角色管理模块</div>
<hr class="hr2" />
<div id="ModularContent">
<div class="title">
<h1>
增加用户角色</h1>
<table>
<tr>
<td>
<asp:Label ID="labName" runat="server" Text="新角色名称:"></asp:Label>
</td>
<td>
<asp:TextBox ID="tbxrolename" runat="server" ValidationGroup="addRo"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="addRo"
ControlToValidate="tbxrolename" runat="server" ErrorMessage="请输入类别名字!" Text="*"></asp:RequiredFieldValidator>
</td>
<td>
<asp:Button ID="addbtn" runat="server" Text="增加角色" ValidationGroup="addRo" OnClick="addbtn_Click" />
<asp:ValidationSummary ID="ValidationSummary1" ValidationGroup="addRo" ShowMessageBox="true"
ShowSummary="false" runat="server" />
</td>
</tr>
</table>
</div>
<hr class="hr2" />
<asp:UpdatePanel ID="MyUpdatePanel" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<ContentTemplate>
<div class="list">
<asp:GridView ID="gvRoleInfo" runat="server" AutoGenerateColumns="False" AllowPaging="True"
GridLines="Horizontal" BorderColor="#CAD9EA" BorderStyle="Solid" BorderWidth="1px"
CellPadding="4" OnPageIndexChanging="gvRoleInfo_PageIndexChanging" OnRowUpdating="gvRoleInfo_RowUpdating"
OnRowEditing="gvRoleInfo_RowEditing" OnRowCancelingEdit="gvRoleInfo_RowCancelingEdit"
OnRowDeleting="gvRoleInfo_RowDeleting">
<RowStyle CssClass="RowStyle1" />
<FooterStyle BackColor="White" ForeColor="#333333" />
<PagerStyle CssClass="PagerStyle1" />
<SelectedRowStyle BackColor="#339966" Font-Bold="True" ForeColor="White" />
<HeaderStyle CssClass="HeadStyle1" />
<AlternatingRowStyle CssClass="AltRowStyle1" />
<EditRowStyle CssClass="EditRowStyle1" />
<Columns>
<asp:BoundField DataField="roleId" HeaderText="角色编号" ReadOnly="true" />
<asp:BoundField DataField="roleName" HeaderText="角色名称" />
<asp:CommandField HeaderText="编辑" ShowEditButton="True" />
<asp:CommandField HeaderText="删除" ShowDeleteButton="True" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="button" runat="server" Text="更新" UseSubmitBehavior="false" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerTemplate>
......
</PagerTemplate>
</asp:GridView>
<br />
</div>
</div>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
</asp:Content>




后台代码

using ...

public partial class Admin_RoleInsert : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
gvRoleInfo.DataSource = new RolesInfoBLL().RoleSelectAll();
gvRoleInfo.DataBind();
}
else { LoadData(); }
}

void LoadData()
{
gvRoleInfo.DataSource = new RolesInfoBLL().RoleSelectAll();
gvRoleInfo.DataBind();

}




protected void gvRoleInfo_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

GridView gvRoleInfo= sender as GridView;
string id = (gvRoleInfo.Rows[e.RowIndex].Cells[0]).Text;
string name = ((TextBox)gvRoleInfo.Rows[e.RowIndex].Cells[1].Controls[0]).Text;
bool c = new RolesInfoBLL().RolesNameIsExists(name);
if (!c)
{
RolesInfo ro = new RolesInfo(id, name);
bool b = new RolesInfoBLL().RoleUpdate(ro);

if (b)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('更新成功!');</script>");
gvRoleInfo.EditIndex = -1;
LoadData();
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('更新失败,请联系管理员!');</script>");

}
}
else
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('该角色名称已经存在,请重新输入!');</script>");
tbxrolename.Text = "";
return;

}



}
protected void gvRoleInfo_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvRoleInfo.EditIndex = -1;
LoadData();
}

protected void gvRoleInfo_RowEditing(object sender, GridViewEditEventArgs e)
{
gvRoleInfo.EditIndex = e.NewEditIndex;
LoadData();

}
protected void gvRoleInfo_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string roleId = (gvRoleInfo.Rows[e.RowIndex].Cells[0]).Text;
bool b = new RolesInfoBLL().RoleDelete(roleId);

if (b)
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('删除成功!');</script>");
LoadData();
}
else
{
string err = new RolesInfoBLL().ErrMessage.ToString();
Response.Write(err);
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('删除失败,请联系管理员!');</script>");
}


}

protected void gvRoleInfo_PageIndexChanging(object sender,GridViewPageEventArgs e)
。。。。

}

...全文
229 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanjinyu 2012-05-06
  • 打赏
  • 举报
回复
可以参考下面这篇文章
http://blog.csdn.net/yjmtv0817/article/details/1804324

我们要学会搜索
zscmj 2012-04-09
  • 打赏
  • 举报
回复
有人会吗
zscmj 2012-04-09
  • 打赏
  • 举报
回复
求高手
zscmj 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

为你的UpdatePanel增加一个Trigger
<asp:UpdatePanel ID="MyUpdatePanel" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="button" EventNam……
[/Quote]

这个方法试过。但是不会写那个Click的方法,因为我本来也有一个方法了。updating,如何调用。
暖枫无敌 2012-04-09
  • 打赏
  • 举报
回复
为你的UpdatePanel增加一个Trigger
<asp:UpdatePanel ID="MyUpdatePanel" runat="server" ChildrenAsTriggers="true" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="button" EventName="Click" />
</Triggers>

<ContentTemplate>
<asp:Button ID="button" runat="server" Text="更新" UseSubmitBehavior="false" />
</ContentTemplate>
</asp:UpdatePanel>

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧