一、DataList呈现效果图如下:
二、前端控件代码: - <asp:DataList ID="DataList1" OnItemCommand="DataList1_ItemCommand" runat="server">
- <ItemTemplate>
- <table border="0" runat="server" style="width: 100%; height: 100%; margin-top: 0px; padding-top: 0px; font-size: 9pt;" align="center">
- <tr>
- <td align="left" style="border-bottom: 1px dashed #000000; width: 150px; height: 21px;"> · 『
- <%# DataBinder.Eval(Container.DataItem,"type") %>
- 』
- </td>
- <td style="border-bottom: 1px dashed #000000;" align="left">
- <asp:LinkButton ID="IbtnTitle" runat="server" CommandName="select">
- <%# DataBinder.Eval(Container.DataItem,"title") %>
- </asp:LinkButton>
- </td>
- </tr>
- </table>
- </ItemTemplate>
- </asp:DataList>
复制代码
其中,里的内容就是自定义模板的内容。
最关键的一步是绑定数据库表的数据字段,即 <%# DataBinder.Eval(Container.DataItem,"type") %> 和 <%# DataBinder.Eval(Container.DataItem,"title") %>
总结: <%# DataBinder.Eval(Container.DataItem,"DataList的DataSource的某个字段名") %>,一般就是数据库表的字段名
三、后台相关代码: - /// <summary>
- /// 连接数据库
- /// </summary>
- /// <returns>返回SqlConnection对象</returns>
- public SqlConnection GetConnection()
- {
- //获取数据库连接的字符串并赋值给myStr
- string myStr = ConfigurationManager.AppSettings["ConnectionString"].ToString();
- SqlConnection myConn = new SqlConnection(myStr);
- return myConn;
- }
- /// <summary>
- /// 说明:GetDataList 数据集,返回数据源的数据集
- /// </summary>
- /// <param name="sQueryString">SQL字符串</param>
- /// <param name="TableName">数据表名称</param>
- /// <returns>数据集DataSet</returns>
- public DataSet GetDataSet(string sQueryString, string TableName)
- {
- SqlConnection con = GetConnection();
- con.Open();
- //定义并初始化数据适配器
- SqlDataAdapter dbAdapter = new SqlDataAdapter(sQueryString, con);
- //定义一个数据集,用来赋值给应用程序的一个数据集
- DataSet dataset = new DataSet();
- //将数据适配器中的数据填充到数据集dataset中
- dbAdapter.Fill(dataset, TableName);
- con.Close();
- return dataset;
- }
- protected void Page_Load(object sender, EventArgs e)
- {
- DataSet ds = GetDataSet("select * from tb_News", "tb_News");
- this.DataList1.DataSource = ds;
- this.DataList1.DataKeyField = "id";
- this.DataList1.DataBind();
- }
复制代码
tb_News表中就有ID,Tyle, Title字段
而其中,超链接LinkButton的点击事件是DataList的OnItemCommand事件,会将点击的列表子项信息传递给该事件对应的方法!
注意:1、LinkButton的CommandName必须设置为"select"才会触发该事件。
2、this.DataList1.DataKeyField = "id" 必须写上,不然下面获取不了主键ID
web.config中在中,添加:
注意:这是连接SQL SERVER的方法,不是MYSQL(别搞错了!)
四、点击LinkButton(超链接)触发的事件方法如下: - /// <summary>
- /// 点击超链接文字后事件,跳转showNews显示新闻详细信息
- /// </summary>
- protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
- {
- int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());
- Response.Write("<script language=javascript>window.open(showNews.aspx?id=" + id +
- ",width=520,height=260</script>");
- }
复制代码
通过DataList1.DataKeys[e.Item.ItemIndex].ToString()来获取表的ID字段,而e就是所点击的那行信息体。
来源:https://blog.csdn.net/qq_39574690/article/details/83934476 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |