ASP.NET:DataList控件的选择输入功能

翻译|其它|编辑:郝浩|2007-06-12 11:55:30.000|阅读 1756 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

      利用 DataList 控件的<SelectedItemTemplate> 属性,就可以随心所欲的布置表中的数据。根据链接,友好地显示出用户感兴趣的数据,我们来看下面的实例。

    DataCon Web 项目里添加一个 Web 窗体,命名为 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
窗体设计器生成的代码 "
    '
此处省略了窗体设计器生成的代码
   #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 -------

    ASP.NET 没有系统 DataList 控件的内置分页功能,但这不代表 DataList 控件不支持分页,我们可以通过 DataAdapter.Fill(DataTable,intStartpage,intmaxpages,strDataTablename)来以编程的方式实现 DataList 的分页功能。读者可以参见 DataGrid 控件的自定义分页功能中的有关知识。


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP