ASP.NET:DataList控制項的選擇輸入功能

來源:互聯網
上載者:User
asp.net|控制項     利用DataList控制項的<SelectedItemTemplate> 屬性,就可以隨心所欲的布置表中的資料。根據連結,友好地顯示出使用者感興趣的資料,我們來看下面的執行個體。

    9.3.2 DataList控制項的選擇輸入功能

    在DataCon Web 項目裡添加一個Web Form,命名為DataList_Sample2.aspx,添加一個DataList控制項,DataList_Sample2.aspx的主要HTML代碼如下:

<form id="Form1" method="post" runat="server">
 <asp:DataList id="DataList1"
 runat="server"  RepeatColumns="1"
BorderColor="#000099" CellPadding="0"
BorderWidth="1px" GridLines="Both">
<SelectedItemStyle Font-Size="X-Small"></SelectedItemStyle>
 <HeaderTemplate>  學生資訊情況  </HeaderTemplate>
 <SelectedItemTemplate>
 姓名:<%# DataBinder.Eval(Container.DataItem,"name") %>
(編號:<%# DataBinder.Eval(Container.DataItem,"id") %>)<br>
 性別:<%# DataBinder.Eval(Container.DataItem,"sex") %><br>
 專業:<%# DataBinder.Eval(Container.DataItem,"major") %><br> 
班級:<%# DataBinder.Eval(Container.DataItem,"class") %><br>
住址:<%# DataBinder.Eval(Container.DataItem,"address") %><br>
電話:<%# DataBinder.Eval(Container.DataItem,"tel") %><br>
電郵:<%# DataBinder.Eval(Container.DataItem,"email") %><br>
<asp:LinkButton Runat="server" CommandName="close">關閉</asp:LinkButton>
</SelectedItemTemplate>
<AlternatingItemStyle BackColor="Gainsboro"></AlternatingItemStyle>
 <SeparatorStyle BackColor="#339966"></SeparatorStyle>
 <ItemStyle Font-Size="X-Small"></ItemStyle>
<ItemTemplate>
 編號:<%# DataBinder.Eval(Container.DataItem,"id") %>
 姓名:<%# DataBinder.Eval(Container.DataItem,"name") %>
 <asp:LinkButton Runat="server" CommandName="moreinfor" >
詳情</asp:LinkButton>
 </ItemTemplate>
 <HeaderStyle Font-Names="宋體" Font-Bold="True" BackColor="LightSteelBlue"></HeaderStyle>
   </asp:DataList>
</form>

    在這個執行個體中的應用中,我們需要注意的是<SelectedItemTemplate>的布局格式和添加控制項的格式使用。當我們點擊DataList控制項中的LinkButton控制項時,辨別是由哪個LinkButton控制項引發的依據是LinkButton控制項的CommandName屬性。DataList控制項中所部署的Button類型的控制項所引發的事件是ItemCommand事件程序,我們要做的就是在這個過程裡添加響應代碼。

    下面來看DataList_Sample2.aspx.vb中的邏輯代碼:

'-----code  begin----
'省略命名空間的引用
Public Class DataList_Sample2
    Inherits System.Web.UI.Page
#Region " Web Form設計器產生的程式碼 "
    '此處省略了表單設計器產生的程式碼
   #End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此處放置初始化頁的使用者代碼
        getdata()
End Sub
    Sub getdata()
        Dim mycon As OleDb.OleDbConnection
        Try
            mycon = New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath(".") + "\StudentInfor.mdb")
            Dim mycmd As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter("select *  from student", mycon)
            Dim dt As Data.DataSet = New Data.DataSet
            mycmd.Fill(dt)
            DataList1.DataSource = dt.Tables(0).DefaultView
            DataList1.DataBind()
        Catch ex As Exception
            Response.Write("程式出現錯誤,資訊描述如下:<br>" & ex.Message.ToString)
        Finally
            mycon.Close()
        End Try
End Sub
Private Sub DataList1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataList1.SelectedIndexChanged
End Sub
Private Sub DataList1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataListCommandEventArgs) Handles DataList1.ItemCommand
        If e.CommandName = "moreinfor" Then
            '當單擊的是[詳情]連結時,顯示詳細資料
            DataList1.SelectedIndex = e.Item.ItemIndex
        ElseIf e.CommandName = "close" Then
            '當單擊的是[關閉]連結時,關閉詳細資料
            DataList1.SelectedIndex = -1
        End If
        getdata()
End Sub
End Class
'-----code  end -------

儲存編譯後,效果如圖9.15所示。


圖15

    ASP.NET沒有系統DataList控制項的內建分頁功能,但這不代表DataList控制項不支援分頁,我們可以通過DataAdapter.Fill(DataTable,intStartpage,intmaxpages,strDataTablename)來以編程的方式實現DataList的分頁功能。讀者可以參見DataGrid控制項的自訂分頁功能中的有關知識。



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。