|
昨天晚上花了三個多小時寫一個程序?qū)崿F(xiàn)下面這種功能的:
![]() 現(xiàn)在我把我的代碼貼上來大家分享一下,這個用到一個DataList,和GridView。先到Dreamwaver里面把布局布好,我用的是div+css布局的 然后在DataList中嵌套進GridView控件,在把樣式做好,然后就開始寫代碼了 .aspx中代碼: 1 <div id="div_bodyright">2 ![]() 3 <asp:DataList ID="list" runat="server" RepeatColumns="2" RepeatDirection="Horizontal" DataKeyField="TypeID"4 RepeatLayout="Flow" OnItemDataBound="list_ItemDataBound">5 <ItemTemplate>6 <div id="div11" class="bodyleft">7 <div id="title1" class="cls_title">8 <div id="tl1" class="cls_tleft"><img src="images/bullet1.gif" alt="Title"/> <label id="t1" class="lbTxt"><%# DataBinder.Eval(Container.DataItem, "TypeName")%></label></div>9 <div id="tr1" class="cls_tright"><img src="images/more.gif" alt="More " /></div> 10 </div>11 <div id="list1" class="divlist">12 <asp:GridView ID="gvArticle1" runat="server" ShowHeader="false" ShowFooter="false" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" width="100%">13 <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />14 <Columns>15 <asp:TemplateField HeaderText="標題">16 <ItemStyle Width="80%" />17 <ItemTemplate>18 <asp:HyperLink ID="title" runat="server" NavigateUrl='<%#"Article.aspx?aid=" + DataBinder.Eval(Container.DataItem,"ArticleId")%>' title='<%#"標題:" + DataBinder.Eval(Container.DataItem, "ArticleTitle") + "\n發(fā)布日期:" + DataBinder.Eval(Container.DataItem,"ArticleDateTime") + "\n點擊量:" + DataBinder.Eval(Container.DataItem,"ArticleClick")%>'><%# DataBinder.Eval(Container.DataItem, "ArticleTitle")%></asp:HyperLink>19 </ItemTemplate>20 </asp:TemplateField>21 <asp:BoundField DataField="ArticleDate" HeaderText="日期" ItemStyle-Width="20%" />22 23 </Columns>24 <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />25 <EditRowStyle BackColor="#999999" />26 <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />27 <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />28 <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />29 <AlternatingRowStyle BackColor="White" ForeColor="#284775" />30 </asp:GridView>31 </div>32 </div>33 </ItemTemplate>34 <AlternatingItemTemplate>35 <div id="div12" class="bodyright">36 <div id="title2" class="cls_title">37 <div id="tl2" class="cls_tleft"><img src="images/bullet1.gif" alt="Title"/> <label id="t2" class="lbTxt"><%# DataBinder.Eval(Container.DataItem, "TypeName")%></label></div>38 <div id="tr2" class="cls_tright"><img src="images/more.gif" alt="More " /></div>39 </div>40 <div id="list1" class="divlist">41 <asp:GridView ID="gvArticle2" runat="server" ShowHeader="false" AutoGenerateColumns="False" ShowFooter="false" CellPadding="4" ForeColor="#333333" GridLines="None" width="100%">42 <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />43 <Columns>44 <asp:TemplateField HeaderText="標題">45 <ItemStyle Width="80%" />46 <ItemTemplate>47 <asp:HyperLink ID="title" runat="server" NavigateUrl='<%#"Article.aspx?aid=" + DataBinder.Eval(Container.DataItem,"ArticleId")%>' title='<%#"標題:" + DataBinder.Eval(Container.DataItem, "ArticleTitle") + "\n發(fā)布日期:" + DataBinder.Eval(Container.DataItem,"ArticleDateTime") + "\n點擊量:" + DataBinder.Eval(Container.DataItem,"ArticleClick")%>'><%# DataBinder.Eval(Container.DataItem, "ArticleTitle")%></asp:HyperLink>48 </ItemTemplate>49 </asp:TemplateField>50 <asp:BoundField DataField="ArticleDate" HeaderText="日期" ItemStyle-Width="20%" />51 52 </Columns>53 <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />54 <EditRowStyle BackColor="#999999" />55 <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />56 <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />57 <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />58 <AlternatingRowStyle BackColor="White" ForeColor="#284775" />59 </asp:GridView> 60 </div> 61 </div>62 </AlternatingItemTemplate>63 </asp:DataList>64 </div>.cs中的代碼: BllArticle bll = new BllArticle();![]() protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack)![]() { list.DataSource = bll.GetTypeList(false); list.DataBind(); } } protected void list_ItemDataBound(object sender, DataListItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)![]() { if (e.Item.ItemType == ListItemType.Item)![]() { GridView gvList1 = (GridView)e.Item.FindControl("gvArticle1");![]() gvList1.DataSource = bll.GetArticles(int.Parse(list.DataKeys[e.Item.ItemIndex].ToString())); gvList1.DataBind();![]() } if (e.Item.ItemType == ListItemType.AlternatingItem)![]() { GridView gvList2 = (GridView)e.Item.FindControl("gvArticle2"); gvList2.DataSource = bll.GetArticles(int.Parse(list.DataKeys[e.Item.ItemIndex].ToString())); gvList2.DataBind(); } } }在數(shù)據(jù)層中的代碼: /// <summary> /// 獲取文章類別的信息 IsAll是不是顯示全部信息 /// </summary> /// <param name="IsAll">true 顯示所有,false 顯示允許顯示的內(nèi)容</param> /// <returns></returns> public DataSet GetTypeList(bool IsAll) { using (SqlConnection conn = new SqlConnection(DBSqlHelper.DBConnectionString))![]() { StringBuilder sb = new StringBuilder(); if(IsAll)![]() { sb.Append(" select * from Info_Type order by TypeOrder desc"); return DBSqlHelper.GetDataSet(conn,CommandType.Text,sb.ToString()); } else![]() { sb.Append(" select * from Info_Type where TypeVisible=@Visible order by TypeOrder desc"); SqlParameter parm = new SqlParameter("@Visible",SqlDbType.VarChar,0); parm.Value = "1"; return DBSqlHelper.GetDataSet(conn, CommandType.Text, sb.ToString(), parm); } } }![]() /// <summary> /// 獲取前N條文章列表數(shù)據(jù) /// </summary> /// <param name="TypeID"></param> /// <returns></returns> public DataSet GetArticles(int TypeID) { using (SqlConnection conn = new SqlConnection(DBSqlHelper.DBConnectionString))![]() { StringBuilder sb = new StringBuilder(); sb.Append(" select top 10 ArticleId,ArticleTitle,replace(convert(varchar(12),ArticleDate,111),'/','-') as ArticleDate,"); sb.Append(" ArticleDate as ArticleDateTime,ArticleClick from Info_Article where ArticleType=@typeid order by ArticleId desc");![]() SqlParameter parm = new SqlParameter("@typeid", SqlDbType.Int, 0); parm.Value = TypeID;![]() return DBSqlHelper.GetDataSet(conn, CommandType.Text, sb.ToString(),parm); } }這樣就可以了,不過我這里就不把CSS文件的代碼貼上來了,實現(xiàn)的效果就是上面截圖那樣的 |
|
|
來自: 悟靜 > 《.net和asp.net》