logo

ASP.NET展开GridView行数据展示效果,巧用UpdatePanel实现

时间:2009-12-10 21:32:19 来源:编辑整理 作者:

下面给大家介绍在订单管理中,点击某条订单记录展示详细订单数据情况,主要使用异步来操作,好处是减轻系统压力。

请看详细实现过程:

1.在你的aspx页面头部注册System.Web.Extensions

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

2.在form表单里加入ScriptManager

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

3.在GridView外嵌套一个UpdatePanel,并指定局部刷新Triggers属性值

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="gvDemand" runat="server" Width="100%" AutoGenerateColumns="False" DataKeyNames="ID" OnRowCommand="gvDemand_RowCommand">

/**此处为GridView里的内容...脚本有点多,页面全部html代码请点这里下载**/

此处要注意的地方就是展开部分ID的命名,默认为不显示

</GridView>

</ContentTemplate>
<Triggers>
  <asp:AsyncPostBackTrigger ControlID="gvDemand" EventName="RowCommand" />
</Triggers>
</asp:UpdatePanel>

4.接下来编写服务器端代码gvDemand_RowCommand

Code [http://www.xueit.com]
protected void gvDemand_RowCommand(object sender, GridViewCommandEventArgs e) { string rowIndex = e.CommandArgument.ToString(); switch (e.CommandName.ToLower()) { case "showdetail": //显示详细信息 int index = 0; if (int.Parse(rowIndex) % pager.PageSize == 0) { index = pager.PageSize - 1; } else { index = (int.Parse(rowIndex) % pager.PageSize) - 1; } HtmlTableRow trShowDetail = (HtmlTableRow)gvDemand.Rows[index].FindControl("trShowDetail"); if (trShowDetail != null) { if (trShowDetail.Visible == false) { trShowDetail.Visible = true; //流程控件处理 WorkFlow.UserControl.ActionToolBar flowBar = ((WorkFlow.UserControl.ActionToolBar)gvDemand.Rows[index].FindControl("ActionToolBar1")); if (flowBar != null) { flowBar.BindFlowData(); } } else { trShowDetail.Visible = false; } } break; default: break; } }


文章分页12
标签:UpdatePanel
100%

回复:ASP.NET展开GridView行数据展示效果,巧用UpdatePanel实现

0 / 5000