Menu及MultiView多表格显示例子

aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ListECR.aspx.cs" Inherits="FileECR.Webs.ListECR" %>
<%@ Register Src="WebHead.ascx" TagName="WebHead" TagPrefix="uc1" %>
<%@ Register Src="WebFoot.ascx" TagName="WebFoot" TagPrefix="uc2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    
<title>ECR文管系统</title>
    
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
<link rel="shortcut icon" href="Images/favicon.ico"/>
    
<link href="Styles/Style.css" rel="stylesheet" type="text/css" />
    
<link href="Styles/LightStyle.css" rel="stylesheet" type="text/css" />
    
<script language="javascript" src="Scripts/Check.js" type="text/javascript"></script>
    
<link href="Styles/HeadStyle.css" rel="stylesheet" type="text/css" />
    
<link href="Styles/RoundStyle.css" rel="stylesheet" type="text/css" />
</head>
<body>
    
<form id="form2" runat="server">
    
<uc1:WebHead ID="WebHead1" runat="server" />
    
<br/>
<div id="Whatever">
<ul class="TabBarLevel1" id="TabPage1">
    
<li  id="Tab1"><href="AddECR.aspx">工程申请</a></li>
    
<li  id="Tab2"  class="Selected"><href="ListECR.aspx">工程清单</a></li>
    
<li  id="Tab3"><asp:HyperLink ID="hlUserAd" NavigateUrl="~/userAdmin.aspx" runat="server">用户管理</asp:HyperLink></li>
    
<li  id="Tab4"><asp:HyperLink ID="hlConfigMo" NavigateUrl="~/ConfigModify.aspx" runat="server">系统设置</asp:HyperLink></li>
</ul>
</div>
<br/> 
<table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="2%">&nbsp;</td>
<td width="98%">
 
<asp:Menu ID="Menu1" runat="server" StaticSubMenuIndent="10px"
                                Orientation
="Horizontal" OnMenuItemClick="Menu1_MenuItemClick" Font-Bold="True">
    
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" BorderColor="#CCCCCC"
    BorderStyle
="Solid" BorderWidth="1px" />
    
<StaticSelectedStyle BackColor="#CCCCCC" ForeColor="White" BorderStyle="Inset" />
    
<StaticHoverStyle BackColor="CornflowerBlue" ForeColor="White" BorderStyle="Inset" />
    
<Items>
        
<asp:MenuItem  Text="所有申请单" Value="0" Selected="True"></asp:MenuItem>
        
<asp:MenuItem Text="我的申请单" Value="1"></asp:MenuItem>
        
<asp:MenuItem Text="我的审核单" Value="2"></asp:MenuItem>
        
</Items>
</asp:Menu>
</td>
</tr>
</table>
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
    
<asp:View ID="View1" runat="server">
        
<div>
  
<div id="nifty">
<class="rtop"><class="r1"></b><class="r2"></b><class="r3"></b><class="r4"></b></b>
<div>
  
<asp:GridView ID="myGridView" runat="server" DataKeyNames="id" AutoGenerateColumns="False" HorizontalAlign="Center" Width="100%" AllowSorting="True" EmptyDataText="没有信息" OnPageIndexChanging="myGridView_PageIndexChanging" OnRowCreated="myGridView_RowCreated" OnRowDataBound="myGridView_RowDataBound"  OnSorting="myGridView_Sorting" AllowPaging="True">
      
<Columns>
          
<asp:BoundField HeaderText="序号" >
              
<ItemStyle HorizontalAlign="Center" />
              
<HeaderStyle HorizontalAlign="Center" Width="5%" />
          
</asp:BoundField>
          
<asp:BoundField DataField="stime" HeaderText="申请日期" SortExpression="stime">
              
<HeaderStyle HorizontalAlign="Center" Width="10%" />
              
<ItemStyle HorizontalAlign="Center" />
          
</asp:BoundField>
          
<asp:BoundField DataField="username" HeaderText="申请人" SortExpression="username">
              
<HeaderStyle HorizontalAlign="Left" Width="20%" />
          
</asp:BoundField>
          
<asp:BoundField DataField="deptname" HeaderText="申请单位" SortExpression="deptname">
              
<HeaderStyle HorizontalAlign="Left" Width="20%" />
          
</asp:BoundField>
          
<asp:BoundField DataField="tabno" HeaderText="表单编号" SortExpression="tabno">
              
<HeaderStyle HorizontalAlign="Left" Width="10%" />
          
</asp:BoundField>
          
<asp:TemplateField HeaderText="签核状态" SortExpression="state">
              
<ItemStyle HorizontalAlign="Center" />
              
<HeaderStyle HorizontalAlign="Center" Width="12%" />
              
<ItemTemplate>
                  
<asp:Label ID="Label1" runat="server" Text='<%# ConvertState(Eval("state").ToString())%>'></asp:Label>
              
</ItemTemplate>
          
</asp:TemplateField> 
          
<asp:TemplateField HeaderText="完成状态" SortExpression="end_mk">
              
<ItemStyle HorizontalAlign="Center" />
              
<HeaderStyle HorizontalAlign="Center" Width="8%" />
              
<ItemTemplate>
                  
<asp:Label ID="Label1" runat="server" Text='<%# Eval("end_mk").ToString()=="True"?"已完成":"未完成"%>'></asp:Label>
              
</ItemTemplate>
          
</asp:TemplateField>              
          
<asp:TemplateField HeaderText="操作">
              
<ItemStyle HorizontalAlign="Center" />
              
<HeaderStyle HorizontalAlign="Center" Width="10%" />
              
<ItemTemplate>
                  
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("ecrnewid", "~/ShowECR.aspx?ecrnewid={0}") %>'>详情</asp:HyperLink>&nbsp;/
                  
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Eval("ecrnewid", "~/ShowECR.aspx?printid={0}") %>'>打印</asp:HyperLink>
              
</ItemTemplate>
          
</asp:TemplateField>
            
<asp:TemplateField>
                
<HeaderTemplate>
                    
<input id="CheckAll" type="checkbox" onclick="selectAll(this)" />
                
</HeaderTemplate>
                
<ItemTemplate>
                    
<input id="chkID" name="chkID" type="checkbox" value='<%# Eval("id")%>' onclick="selectOne(this)" />
                
</ItemTemplate>
                
<ItemStyle HorizontalAlign="Center" />
                
<HeaderStyle HorizontalAlign="Center" Width="5%" />
            
</asp:TemplateField>
      
</Columns>
    
<HeaderStyle BackColor="#CCCCCC" />
         
<RowStyle BackColor="White" /> 
    
<EditRowStyle BackColor="AliceBlue" />
      
<PagerSettings Visible="False" />
   
</asp:GridView>
   
</div>
<class="rbottom"><class="r4"></b><class="r3"></b><class="r2"></b><class="r1"></b></b>
</div>
        
</div>
    
</asp:View>
    
<asp:View ID="View2" runat="server">
        
<div>
        
<table width="98%" align="center" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
          
<tr>
            
<td bgcolor="#FFFFFF">现在显示的是标签2</td>
          
</tr>
        
</table>
        
</div>
    
</asp:View>
    
<asp:View ID="View3" runat="server">
        
<div>
        
<table width="98%" align="center" border="0" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
          
<tr>
            
<td bgcolor="#FFFFFF">现在显示的是标签3</td>
          
</tr>
        
</table>
        
</div>
    
</asp:View>
</asp:MultiView>
<table width="98%" height="25" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
  
<td>
    
<asp:Label ID="labRecordCount" runat="server"></asp:Label>&nbsp;
    
<asp:Label ID="labPageCount" runat="server"></asp:Label>&nbsp;
    
<asp:Label ID="labPageRecord" runat="server"></asp:Label>&nbsp;
  
</td>
  
<td align="right">
    
<asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick" runat="server">首 页</asp:LinkButton>&nbsp;
    
<asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick" runat="server">上一页</asp:LinkButton>&nbsp;
    
<asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick" runat="server">下一页</asp:LinkButton>&nbsp;
    
<asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick" runat="server">尾 页</asp:LinkButton>
  
</td>
</tr>
</table>
    
<uc2:WebFoot ID="WebFoot1" runat="server" />
    
</form>
</body>
</html>

cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace FileECR.Webs
{
    
public partial class ListECR : System.Web.UI.Page
    
{
        
protected void Page_Load(object sender, EventArgs e)
        
{
            ValiBin();
            
if (!IsPostBack)
            
{
                GridViewBind();
            }

        }

        
//验证是否管理员
        private void ValiBin()
        
{
            
//string strAdmPass = WebClass.UserList.ListUserAdmin(User.Identity.Name);
            HttpCookie userCookie = Request.Cookies["theCookieWSF"];
            FormsAuthenticationTicket ticket 
= FormsAuthentication.Decrypt(userCookie.Value);
            
string[] SPsecretData = ticket.UserData.Split(new char[] ',' });
            
string strAdmPass = SPsecretData[1];
            hlUserAd.Visible 
= (strAdmPass == "True" ? true : false);
            hlConfigMo.Visible 
= (strAdmPass == "True" ? true : false);
        }

        
private void GridViewBind()
        
{
            
//監測當前的排序狀況
            if (this.ViewState["orderByName"== null)
            
{
                ViewState[
"orderByName"= "username";
                ViewState[
"orderByType"= "asc";
            }


            
//獲取當前ViewState中保存的排序
            string orderByName = this.ViewState["orderByName"].ToString();
            
string orderByType = this.ViewState["orderByType"].ToString();

            WebClass.ECRList tmp 
= new WebClass.ECRList();
            DataTable dt 
= tmp.ECRAllMsgList();

            DataView dv 
= dt.DefaultView;
            dv.Sort 
= orderByName + " " + orderByType;
            myGridView.DataSource 
= dv;
            myGridView.DataBind();

            labRecordCount.Text 
= "共<font color='red'>" + dt.Rows.Count.ToString() + "</font>筆記錄";
            labPageCount.Text 
= "頁次<font color='blue'>" + (myGridView.PageIndex + 1).ToString() + "</font>/<font color='red'>" + myGridView.PageCount.ToString() + "</font>頁";
            labPageRecord.Text 
= "<font color='red'>" + myGridView.PageSize.ToString() + "</font>筆記錄/頁";

            
if (dt.Rows.Count == 0)
            
{
                btnFirst.Visible 
= false;
                btnPrev.Visible 
= false;
                btnNext.Visible 
= false;
                btnLast.Visible 
= false;

                labRecordCount.Visible 
= false;
                labPageCount.Visible 
= false;
                labPageRecord.Visible 
= false;
            }

            
else if (myGridView.PageCount == 1)
            
{
                btnFirst.Visible 
= false;
                btnPrev.Visible 
= false;
                btnNext.Visible 
= false;
                btnLast.Visible 
= false;

                labRecordCount.Visible 
= false;
                labPageCount.Visible 
= false;
                labPageRecord.Visible 
= false;
            }


            btnFirst.CommandName 
= "1";
            btnPrev.CommandName 
= (myGridView.PageIndex == 0 ? "1" : myGridView.PageIndex.ToString());
            btnNext.CommandName 
= (myGridView.PageCount == 1 ? myGridView.PageCount.ToString() : (myGridView.PageIndex + 2).ToString());
            btnLast.CommandName 
= myGridView.PageCount.ToString();
            BtnValidate();
        }

        
private void BtnValidate()
        
{
            
if (myGridView.PageIndex + 1 >= myGridView.PageCount)
            
{
                btnNext.Enabled 
= false;
                btnLast.Enabled 
= false;
            }

            
else
            
{
                btnNext.Enabled 
= true;
                btnLast.Enabled 
= true;
            }

            
if (myGridView.PageIndex + 1 <= 1)
            
{
                btnPrev.Enabled 
= false;
                btnFirst.Enabled 
= false;
            }

            
else
            
{
                btnPrev.Enabled 
= true;
                btnFirst.Enabled 
= true;
            }

        }

        
//签核状态
        public string ConvertState(string str)
        
{
            
string retmsg = "";
            
switch (str)
            
{
                
case "0":
                    retmsg 
= "主管签核中";
                    
break;

                
case "2":
                    retmsg 
= "研发主管<br/>签核中";
                    
break;

                
case "3":
                    retmsg 
= "研发最高主管<br/>签核中";
                    
break;

                
case "4":
                    retmsg 
= "PLM用户";
                    
break;

                
case "5":
                    retmsg 
= "QA确认中";
                    
break;

                
case "6":
                    retmsg 
= "会签中";
                    
break;

                
default:
                    retmsg 
= "申请中";
                    
break;
            }

            
return retmsg;
        }

        
protected void Menu1_MenuItemClick(object sender, MenuEventArgs e)
        
{
            MultiView1.ActiveViewIndex 
= int.Parse(e.Item.Value);
        }

        
protected void PagerButtonClick(object sender, EventArgs e)
        
{
            myGridView.PageIndex 
= Convert.ToInt32(((LinkButton)sender).CommandName) - 1;
            GridViewBind();
        }

        
protected void myGridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
        
{
            myGridView.PageIndex 
= e.NewPageIndex;
            GridViewBind();
        }

        
protected void myGridView_Sorting(object sender, GridViewSortEventArgs e)
        
{
            
this.setViewState(e.SortExpression, this.ViewState["orderByType"].ToString() == "asc" ? "desc" : "asc");
            GridViewBind();
        }

        
/// <summary>
        
/// 以ViewState控制排序,寫入排序字段名及排序方式
        
/// </summary>

        private void setViewState(string orderByName, string orderByType)
        
{
            ViewState[
"orderByName"= orderByName;
            ViewState[
"orderByType"= orderByType;
        }

        
private string SortExpression
        
{
            
get
            
{
                
if (ViewState["orderByName"!= null && ViewState["orderByName"].ToString() != string.Empty)
                
{
                    
return ViewState["orderByName"].ToString();
                }

                
else
                
{
                    
return "";
                }

            }

            
set
            
{
                ViewState[
"orderByName"= value;
            }

        }

        
private string sort
        
{
            
get
            
{
                
if (ViewState["orderByType"!= null && ViewState["orderByType"].ToString() != string.Empty)
                
{
                    
return ViewState["orderByType"].ToString();
                }

                
else
                
{
                    
return "";
                }

            }

            
set
            
{
                ViewState[
"orderByType"= value;
            }

        }

        
protected void myGridView_RowDataBound(object sender, GridViewRowEventArgs e)
        
{
            
if (e.Row.RowIndex != -1)
            
{
                
int indexID = this.myGridView.PageIndex * this.myGridView.PageSize + e.Row.RowIndex + 1;
                e.Row.Cells[
0].Text = indexID.ToString();
            }

        }

        
protected void myGridView_RowCreated(object sender, GridViewRowEventArgs e)
        
{
            
for (int i = 0; i < myGridView.Columns.Count; i++)
            
{
                
//if (i == 0) continue;
                if (e.Row.RowIndex == -1)
                
{
                    
if (myGridView.Columns[i].SortExpression == SortExpression)
                    
{
                        
try
                        
{
                            TableCell tableCell 
= e.Row.Cells[i];
                            Image img 
= new Image();
                            img.ImageUrl 
= (sort == "desc" ? "~/Images/sortascending.gif" : "~/Images/sortdescending.gif");
                            tableCell.Controls.Add(img);
                        }

                        
catch { }
                    }

                }

            }

        }

    }

}
原文地址:https://www.cnblogs.com/cnaspnet/p/672754.html