在DataGrid中跨頁面實現多選

實現效果:

SelectValueInMulPage.aspx

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="SelectValueInMulPage.aspx.vb" Inherits="vbProject.SelectValueInMulPage"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>跨頁面實現多選</title>
<META http-equiv="content-type" content="text/html; charset=gb2312">
<style>
* {FONT-SIZE:12PX}
#Status {text-align:left}
</style>
<script language="JAVASCRIPT">
function AddRemoveValues(oChk)
{
//在處理這個地方需要注意的是:你保存的值應該具有唯一性,這樣才能不會替換錯誤的項。
if(oChk.checked)
SelectMultiPage.txtTempValue.value += "," + oChk.value;
else
SelectMultiPage.txtTempValue.value = SelectMultiPage.txtTempValue.value.replace("," + oChk.value,"");
}
</script>
</HEAD>
<BODY>
<form id="SelectMultiPage" runat="server">
<asp:datagrid id="DataGrid1" HorizontalAlign="Center" AutoGenerateColumns="False" Width="600px"
AllowPaging="True" runat="server">
<AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle>
<HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center"></HeaderStyle>
<PagerStyle HorizontalAlign="Right" Mode="NumericPages" Visible="True"></PagerStyle>
<Columns>
<asp:TemplateColumn HeaderText="選擇">
<ItemTemplate>
<input type="checkbox" runat="server" id="chkSelect" οnclick="AddRemoveValues(this)"
value='<%#DataBinder.Eval(Container.DataItem,"LastName")%>' NAME="chkSelect"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="LastName">
<ItemTemplate>
<asp:Literal Text='<%# DataBinder.Eval(Container.DataItem, "LastName") %>' runat="server" ID="TitleShow"/>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Title">
<ItemTemplate>
<asp:Literal Text='<%# DataBinder.Eval(Container.DataItem, "Title").ToString() %>' runat="server" ID="Literal1"/>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
<div align="center">
<asp:button id="Button1" runat="server" Text="得到所選的值"></asp:button>
<div id="Status">
<asp:label id="Label1" runat="server"></asp:label>
</div>
<INPUT id="txtTempValue" type="text" name="TempValue" runat=server >
</div>
</form>
</BODY>
</HTML>

 

SelectValueInMulPage.aspx.vb

Public Class SelectValueInMulPage
Inherits System.Web.UI.Page

#Region " Web 窗體設計器生成的代碼 "

'該調用是 Web 窗體設計器所必需的。
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

End Sub
Protected WithEvents Label1 As System.Web.UI.WebControls.Label
Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid
Protected WithEvents Button1 As System.Web.UI.WebControls.Button
Protected WithEvents txtTempValue As System.Web.UI.HtmlControls.HtmlInputText

'注意: 以下佔位符聲明是 Web 窗體設計器所必需的。
'不要刪除或移動它。
Private designerPlaceholderDeclaration As System.Object

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
'CODEGEN: 此方法調用是 Web 窗體設計器所必需的
'不要使用代碼編輯器修改它。
InitializeComponent()
End Sub

#End Region

Private vbp As New vbProject


Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
BindData()
End If
End Sub

Private Sub DataGrid1_PageIndexChanged(ByVal [source] As Object, ByVal e As DataGridPageChangedEventArgs) Handles DataGrid1.PageIndexChanged
DataGrid1.CurrentPageIndex = e.NewPageIndex
BindData()
End Sub


Sub BindData() '綁定數據
Dim dt As DataTable = vbp.GetEmployees("")
DataGrid1.DataSource = dt
DataGrid1.DataBind()
End Sub


Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
'如果臨時文本中包含改行的數據,則把該行數據中的checkbox選上
If txtTempValue.Value.IndexOf(CType(e.Item.Cells(1).FindControl("TitleShow"), Literal).Text) >= 0 Then
Dim ChkSelected As HtmlInputCheckBox = CType(e.Item.Cells(0).FindControl("ChkSelect"), HtmlInputCheckBox)
ChkSelected.Checked = True
End If
End If
End Sub

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
'爲了顯示的方便進行替換的
Label1.Text = txtTempValue.Value.Replace(",", "<li>")
End Sub

End Class

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章