DataGrid实现多选(javascript)

本文介绍了一个新闻发布系统的管理页面实现,包括新闻列表展示、类别筛选及批量删除等功能。通过C#和ASP.NET技术,实现了新闻数据的分页显示、类型下拉框绑定及数据网格视图交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;

namespace NewsSystem.Admin
{
    
/// <summary>
    
/// NewsManage 的摘要说明。
    
/// </summary>

    public class NewsManage : System.Web.UI.Page
    
{
        
protected System.Web.UI.WebControls.Button btnDelete;
        
protected System.Web.UI.WebControls.DropDownList ddlNewsType;
        
protected System.Web.UI.WebControls.DataGrid DataGrid1;
    
        
private void Page_Load(object sender, System.EventArgs e)
        
{
            
this.btnDelete.Attributes.Add("onclick""return confirmDelete (this.form);");

            
if(!IsPostBack)
            
{
                NewsTypeBind();
                NewsBind();
            }

        }


        
private void NewsBind()
        
{
            BBL.News bbl
=new BBL.News ();
            DataGrid1.DataSource
=bbl.SelectNews();
            DataGrid1.DataBind();
        }


        
private void NewsTypeBind()
        
{
            BBL.NewsType bbl
=new BBL.NewsType ();
            
this.ddlNewsType.DataTextField="NVC_NewTypeName";
            
this.ddlNewsType.DataValueField="INT_NewTypeID";
            
this.ddlNewsType.DataSource=bbl.GetNewsType();
            
this.ddlNewsType.DataBind();
            
        }



        
Web 窗体设计器生成的代码

        
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        
{
            
if(e.Item.ItemType == ListItemType.Header)
            
{
                CheckBox chk 
= (CheckBox)e.Item.FindControl("chkAll");
                chk.Attributes.Add(
"onclick","javascript:return SelectAll(this.checked,this.id)");
            }

            
else if(e.Item.ItemType == ListItemType.Item)
            
{
                CheckBox chk 
= (CheckBox)e.Item.FindControl("chkDelete");
                chk.Attributes.Add(
"onclick","javascript:return SelectAll(this.checked,this.id)");
            }

            
if(e.Item .ItemType==ListItemType.Item ||e.Item .ItemType==ListItemType.AlternatingItem )
            
{
                e.Item .Attributes .Add (
"onmouseover","c=this.style.backgroundColor;this.style.backgroundColor='#ffffff'");
                e.Item .Attributes .Add (
"onmouseout","this.style.backgroundColor=c");
            }

        }


        
private void ddlNewsType_SelectedIndexChanged(object sender, System.EventArgs e)
        
{
            
int newsTypeID=Convert.ToInt32(ddlNewsType.SelectedItem.Value);
            BBL.News bbl
=new BBL.News ();
            DataSet ds
=bbl.GetTypeNews(newsTypeID);
            
this.DataGrid1.DataSource=ds;
            
this.DataGrid1.DataBind();
            
        }


        
private void btnDelete_Click(object sender, System.EventArgs e)
        
{
            System.Web.UI.WebControls.CheckBox chkExport;
            System.Collections.ArrayList oExArgs 
=new System.Collections.ArrayList();   
            
string newsID;   
            
string newsIDList="";
            
               
            
foreach(DataGridItem oDataGridItem in DataGrid1.Items)   
            
{
                chkExport 
=(CheckBox)oDataGridItem.FindControl("chkDelete"); 
                
if(chkExport.Checked)   
                

                    newsID
=((HtmlInputHidden)oDataGridItem.FindControl("SelectedID")).Value;
                    oExArgs.Add(newsID);
                }

            }

            
for(int i =0;i<oExArgs.Count;i++)   
            
{   
                newsIDList 
+=oExArgs[i] + ",";
            }

            newsIDList
=newsIDList.Remove(newsIDList.Length-1,1);
            BBL.News bbl
=new BBL.News ();
            bbl.DeleteNews(newsIDList);
            NewsBind();
            
//    Response.Write (newsIDList);
        }


        
private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
        
{
            
this.DataGrid1 .CurrentPageIndex=e.NewPageIndex ;
            NewsBind();
        }




    }

}

 

function SelectAll (chkVal, idVal) { 
       
var thisfrm = document.forms[0];
           
// 查找Forms里面所有的元素
           for (i=0; i<thisfrm.length; i++) {
              
// 查找模板头中的CheckBox
              if (idVal.indexOf ('chkAll'!= -1) {
                  
if(chkVal == true) {
                     thisfrm.elements[i].checked 
= true;
                  } 
                  
else {
                      thisfrm.elements[i].checked 
= false;
                  }
               } 
// if
               // 如果除题头以外的项没有全选上则取消题头的选择
              else if (idVal.indexOf ('chkDelete'!= -1) {
                  
if(thisfrm.elements[i].checked == false) {
                     thisfrm.elements[
1].checked = false
                  }
               }
           } 
// for
        }
           
       
// 删除判断
function confirmDelete (thisfrm) { 
           
for (i=0; i<thisfrm.length; i++) {
              
if (thisfrm.elements[i].name.indexOf('chkDelete'!=-1) {
                  
if(thisfrm.elements[i].checked) {
                     
return confirm ('你是否想要删除选择的记录?')
                  }
              }
            }
}

 

<%@ Page language="c#" Codebehind="NewsManage.aspx.cs" AutoEventWireup="false" Inherits="NewsSystem.Admin.NewsManage" responseEncoding="gb2312"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    
<HEAD>
        
<title>NewsManage</title>
        
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
        
<meta content="C#" name="CODE_LANGUAGE">
        
<meta content="JavaScript" name="vs_defaultClientScript">
        
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
        
<script language="javascript" src="/NewsSystem/js/admin/gd.js" type="text/Jscript"></script>
    
</HEAD>
    
<body MS_POSITIONING="GridLayout">
        
<form id="Form1" method="post" runat="server">
            
<FONT face="宋体">
                
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 128px; POSITION: absolute; TOP: 48px"
                    runat
="server" AutoGenerateColumns="False" AllowPaging="True" PageSize="20">
                    
<ItemStyle BackColor="WhiteSmoke"></ItemStyle>
                    
<HeaderStyle BackColor="#C0C0FF"></HeaderStyle>
                    
<Columns>
                        
<asp:BoundColumn DataField="INT_NewID" HeaderText="新闻编号"></asp:BoundColumn>
                        
<asp:HyperLinkColumn DataNavigateUrlField="INT_NewID" DataNavigateUrlFormatString="NewsView.aspx?NewsID={0}"
                            DataTextField
="NVC_NewTitle" HeaderText="新闻标题"></asp:HyperLinkColumn>
                        
<asp:BoundColumn DataField="NVC_NewTypeName" HeaderText="所属类别"></asp:BoundColumn>
                        
<asp:BoundColumn DataField="NVC_AddUser" HeaderText="添加人"></asp:BoundColumn>
                        
<asp:BoundColumn DataField="DAT_AddDateTime" HeaderText="发布时间"></asp:BoundColumn>
                        
<asp:HyperLinkColumn Text="评论" DataNavigateUrlField="INT_NewID" DataNavigateUrlFormatString="remark.aspx?INT_NewID={0}"
                            HeaderText
="评论"></asp:HyperLinkColumn>
                        
<asp:BoundColumn DataField="CHR_ISAuditing" HeaderText="是否审核"></asp:BoundColumn>
                        
<asp:TemplateColumn>
                            
<HeaderTemplate>
                                
<asp:CheckBox id="chkAll" runat="server"></asp:CheckBox>
                            
</HeaderTemplate>
                            
<ItemTemplate>
                                
<INPUT id=SelectedID type=hidden value='<%#   DataBinder.Eval(Container.DataItem,"INT_NewID")%>' name=SelectedID runat="server">
                                
<asp:CheckBox id="chkDelete" runat="server"></asp:CheckBox>
                            
</ItemTemplate>
                        
</asp:TemplateColumn>
                    
</Columns>
                    
<PagerStyle NextPageText="下一页" PrevPageText="上一页" BackColor="White"></PagerStyle>
                
</asp:DataGrid>
                
<asp:Button id="btnDelete" style="Z-INDEX: 102; LEFT: 312px; POSITION: absolute; TOP: 344px"
                    runat
="server" Text="删除"></asp:Button>
                
<asp:DropDownList id="ddlNewsType" style="Z-INDEX: 103; LEFT: 128px; POSITION: absolute; TOP: 16px"
                    runat
="server" Width="80px" AutoPostBack="True">
                    
<asp:ListItem Value="全部">全部</asp:ListItem>
                
</asp:DropDownList></FONT></form>
    
</body>
</HTML>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值