1、js判断是否选择数据
<script language="javascript" type="text/javascript">
function judgePass() {var checkNum = document.getElementById("<%=HiddenField1.ClientID %>").value;
if (checkNum == "0" || checkNum == "") {
alert("请先选择要操作的数据!");
return false;
}
else {
return confirm('您确认此操作吗?');
}
}
</script>
2、前台页面部分
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="updateSearch" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<table style="width: 100%; font-family: 宋体; font-size: medium; font-style: normal;
border-collapse: collapse; z-index: 1;" border="1" bordercolor="#cccccc">
<tr>
<td>
</td>
</tr>
<tr style="height: 30px;">
<td align="center">
名称: <asp:TextBox ID="tbxContent" runat="server" Width="200px"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" οnclick="btnSearch_Click"
Text="搜 索" />
</td>
</tr>
<tr style="height: 30px;">
<td align="center" style="">
<asp:Label ID="lblMessage" runat="server"></asp:Label>
</td>
</tr>
</table>
</ContentTemplate>
<Triggers></Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdateNum" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<panel id="PanelNum" runat="server">
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Font-Size="Small" Text=" 设置数据在本页显示数量:"></asp:Label><asp:TextBox ID="tbxNum" runat="server" Width="50px"></asp:TextBox>
<asp:Button ID="btnOk" runat="server" Text="确定" οnclick="btnOk_Click" />
<asp:RegularExpressionValidator
ID="RegularExpressionValidator1" runat="server" Font-Size="Small" ForeColor="Red"
ErrorMessage="请输入大于0的整数" ControlToValidate="tbxNum" ValidationExpression="^[0-9]*[1-9][0-9]*$"></asp:RegularExpressionValidator>
</td>
</tr>
</table>
</panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSearch" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdateGV" runat="server">
<ContentTemplate>
<asp:GridView ID="gv" runat="server" Width="100%" Font-Size="Small" AutoGenerateColumns="False"
DataKeyNames="classifyID" AllowPaging="False" CellPadding="4"
ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<HeaderTemplate>
<asp:CheckBox ID="CheckBoxAll" runat="server" Text="全选" AutoPostBack="true" OnCheckedChanged="CheckBoxAll_CheckedChanged" />
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" Name="CheckBox1" AutoPostBack="true" OnCheckedChanged="CheckBox1_CheckedChanged"
runat="server"></asp:CheckBox>
</ItemTemplate>
<HeaderStyle Wrap="False" HorizontalAlign="left" VerticalAlign="Middle" Width="100px" />
<ItemStyle Wrap="false" HorizontalAlign="left" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="编号">
<ItemTemplate>
<%# Eval("rowIndex")%>
</ItemTemplate>
<HeaderStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle" Width="100px" />
<ItemStyle Wrap="false" HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="名称">
<ItemTemplate>
<%# Eval("classifyName")%>
</ItemTemplate>
<HeaderStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemStyle Wrap="false" HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:TemplateField HeaderText="父名称">
<ItemTemplate>
<%# getClassByOne(Convert.ToInt32(Eval("classOne")),Convert.ToInt32(Eval("classTwo")),Convert.ToInt32(Eval("classThree")))%>
</ItemTemplate>
<HeaderStyle Wrap="False" HorizontalAlign="Center" VerticalAlign="Middle" />
<ItemStyle Wrap="false" HorizontalAlign="Center" VerticalAlign="Middle" />
</asp:TemplateField>
<asp:HyperLinkField Target="_blank" DataNavigateUrlFields="classifyID" DataNavigateUrlFormatString="~/admin/sort_editFrm.aspx?id={0}"
Text=" 修改" HeaderStyle-Width="50px" />
<%-- <asp:HyperLinkField Target="_blank" DataNavigateUrlFields="classifyID" DataNavigateUrlFormatString="~/admin/sort_DtsFrm.aspx?id={0}"
Text=" 详细" HeaderStyle-Width="50px" /> --%>
</Columns>
<EditRowStyle BackColor="#2461BF" />
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<PagerSettings Visible="False" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<RowStyle BackColor="#EFF3FB" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<SortedAscendingCellStyle BackColor="#F5F7FB" />
<SortedAscendingHeaderStyle BackColor="#6D95E1" />
<SortedDescendingCellStyle BackColor="#E9EBEF" />
<SortedDescendingHeaderStyle BackColor="#4870BE" />
</asp:GridView>
<panel id="PanelPage" runat="Server">
<table style="width: 100%; font-family: 宋体; font-size: small; font-style: normal;border-collapse: collapse"
border="1" bordercolor="#cccccc">
<tr>
<td align="center" style="height: 50px">
<asp:LinkButton ID="btnFirst" CommandArgument="first" OnClick="PagerButtonClick"
runat="server" Font-Size="Small" >首 页</asp:LinkButton>
<asp:LinkButton ID="btnPrev" CommandArgument="prev" OnClick="PagerButtonClick"
runat="server" Font-Size="Small">上一页</asp:LinkButton>
<asp:LinkButton ID="btnNext" CommandArgument="next" OnClick="PagerButtonClick"
runat="server" Font-Size="Small">下一页</asp:LinkButton>
<asp:LinkButton ID="btnLast" CommandArgument="last" OnClick="PagerButtonClick"
runat="server" Font-Size="Small">尾 页</asp:LinkButton>
<asp:Label ID="LblCurrentIndex" runat="server" Font-Size="Small"></asp:Label>
<asp:Label ID="LblPageCount" runat="server" Font-Size="Small"></asp:Label>
<asp:Label ID="LblRecordCount" runat="server" Font-Size="Small"></asp:Label>
跳转到:
<asp:DropDownList ID="pageDropDownList" runat="server"
OnSelectedIndexChanged="pageDropDownList_SelectedIndexChanged"
AutoPostBack="True"></asp:DropDownList>
</td>
</tr>
<tr>
<td align="center" style="height: 50px">
<asp:HiddenField ID="HiddenField1" runat="server"></asp:HiddenField>
<asp:Button ID="btnDel" runat="server" Text="删 除" OnClientClick="return judgePass()" οnclick="btnDel_Click"></asp:Button>
</td>
</tr>
</table>
</panel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSearch" />
<asp:AsyncPostBackTrigger ControlID="btnOk" />
</Triggers>
</asp:UpdatePanel>
</div>
</div>
3、后台页面处理
protected int Page_Index //第几页
{
get { return ViewState["PageIndex"] == null ? 1 : (int)ViewState["PageIndex"]; }
set { ViewState["PageIndex"] = value; }
}
protected int Page_Count //每页数量
{
get { return ViewState["PageCount"] == null ? 10 : (int)ViewState["PageCount"]; }
set { ViewState["PageCount"] = value; }
}
int checkNum;
protected void Bind()
{
string name = tbxContent.Text.Trim();
DataTable dt = getByPage(Page_Count,Page_Index,name,"");
int countSum = getSum(name,"");
gv.DataSource = dt;
gv.DataBind();
BindToPage(countSum,Page_Count,Page_Index);
}
protected void BindToPage(int count, int pageNum, int pageIndex)
{
btnFirst.Enabled = true;
btnPrev.Enabled = true;
btnNext.Enabled = true;
btnLast.Enabled = true;
int pageSum = count % pageNum == 0 ? count / pageNum : count / pageNum + 1; //计算总页数
LblCurrentIndex.Text = "第 " + pageIndex + "/" + pageSum + " 页";
LblPageCount.Text = "共 " + pageSum + " 页";
LblRecordCount.Text = "总共 " + count + " 条";
if (pageSum == 1)
{
btnFirst.Enabled = false;
btnPrev.Enabled = false;
btnNext.Enabled = false;
btnLast.Enabled = false;
}
else
{
if (pageIndex - 1 == 0)
{
btnFirst.Enabled = false;
btnPrev.Enabled = false;
btnNext.Enabled = true;
btnLast.Enabled = true;
}
else if (pageIndex == pageSum)
{
btnFirst.Enabled = true;
btnPrev.Enabled = true;
btnNext.Enabled = false;
btnLast.Enabled = false;
}
}
pageDropDownList.Items.Clear();
for (int i = 1; i < pageSum + 1; i++)
{
//ListItem item = new ListItem(i.ToString(), i.ToString());
pageDropDownList.Items.Add(i.ToString());
}
pageDropDownList.SelectedValue = Convert.ToString(pageIndex);
// 计算生成分页页码,分别为:"首 页" "上一页" "下一页" "尾 页"
btnFirst.CommandName = "1";
btnPrev.CommandName = (pageIndex == 1 ? "1" : (pageIndex - 1).ToString());
btnNext.CommandName = (pageSum == 1 ? pageSum.ToString() : (pageIndex + 1).ToString());
btnLast.CommandName = pageSum.ToString();
if (count == 0)
{
PanelPage.Visible = false;
lblMessage.Text = "暂无相关数据......";
PanelNum.Visible = false;
}
else
{
PanelPage.Visible = true;
lblMessage.Text = "";
PanelNum.Visible = true;
}
}
protected void PagerButtonClick(object sender, EventArgs e)
{
Page_Index = Convert.ToInt32(((LinkButton)sender).CommandName);
Bind();
}
//跳转页
protected void pageDropDownList_SelectedIndexChanged(object sender, EventArgs e)
{
Page_Index = Convert.ToInt32(pageDropDownList.SelectedValue);
Bind();
}
protected void btnOk_Click(object sender, EventArgs e)
{
if (tbxNum.Text.Trim() != "")
{
Page_Count = Convert.ToInt32(tbxNum.Text.Trim());
Page_Index = 1;
}
Bind();
tbxNum.Text = "";
}
protected void CheckBoxAll_CheckedChanged(object sender, EventArgs e)
{
checkNum = 0;
CheckBox CheckBoxAll = (CheckBox)gv.HeaderRow.FindControl("CheckBoxAll");
bool boolCheckAll = CheckBoxAll.Checked;
for (int i = 0; i < gv.Rows.Count; i++)
{
CheckBox chk = (CheckBox)gv.Rows[i].FindControl("CheckBox1");
chk.Checked = boolCheckAll;
if (chk.Checked)
{
checkNum = checkNum + 1;
}
}
HiddenField1.Value = checkNum.ToString();
}
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
checkNum = 0;
CheckBox CheckBoxAll = (CheckBox)gv.HeaderRow.FindControl("CheckBoxAll");
bool flag1 = true;
for (int i = 0; i < gv.Rows.Count; i++)
{
CheckBox chk = (CheckBox)gv.Rows[i].FindControl("CheckBox1");
if (!chk.Checked)
{
flag1 = false;
}
if (chk.Checked)
{
checkNum = checkNum + 1;
}
}
if (flag1)
{
CheckBoxAll.Checked = true;
}
else
{
CheckBoxAll.Checked = false;
}
HiddenField1.Value = checkNum.ToString();
}
protected void btnSearch_Click(object sender, EventArgs e)
{
Page_Index = 1;
Bind();
}