ListView.aspx.cs
上传用户:cha0314
上传日期:2014-03-02
资源大小:12522k
文件大小:7k
源码类别:

C#编程

开发平台:

C#

  1. using System;
  2. using System.Collections;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Drawing;
  7. using System.Web;
  8. using System.Web.SessionState;
  9. using System.Web.UI;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.HtmlControls;
  12. using UDS.Components;
  13. namespace UDS.SubModule.UnitiveDocument.BBS
  14. {
  15. /// <summary>
  16. /// ListView 的摘要说明。
  17. /// </summary>
  18. public class ListView : System.Web.UI.Page
  19. {
  20. protected  int boardid;//boardid
  21. protected  int hotitemhittimes = 5;
  22. protected  string classid;
  23. protected System.Web.UI.WebControls.TextBox txb_PageNo;
  24. protected System.Web.UI.WebControls.TextBox txb_ItemPerPage;
  25. protected System.Web.UI.WebControls.Label lbl_totalrecord;
  26. protected System.Web.UI.WebControls.ImageButton btn_first;
  27. protected System.Web.UI.WebControls.ImageButton btn_pre;
  28. protected System.Web.UI.WebControls.Label lbl_curpage;
  29. protected System.Web.UI.WebControls.Label lbl_totalpage;
  30. protected System.Web.UI.WebControls.ImageButton btn_next;
  31. protected System.Web.UI.WebControls.ImageButton btn_last;
  32. protected System.Web.UI.HtmlControls.HtmlInputButton btn_Go;
  33. protected System.Web.UI.WebControls.DataGrid ItemList;
  34. protected System.Web.UI.HtmlControls.HtmlImage image;
  35. protected System.Web.UI.WebControls.Label bias;
  36. protected System.Web.UI.WebControls.Label lblBoardName;
  37. protected System.Web.UI.HtmlControls.HtmlGenericControl mar_bulletin;
  38. protected System.Web.UI.HtmlControls.HtmlGenericControl sys_bulletin;
  39. protected System.Web.UI.HtmlControls.HtmlAnchor backlink;
  40. private void Page_Load(object sender, System.EventArgs e)
  41. {
  42. if(!Page.IsPostBack)
  43. {
  44. boardid = (Request.QueryString["BoardID"]==null)?0:Int32.Parse(Request.QueryString["BoardID"]);
  45. classid   = (Request.QueryString["classID"]!=null && Request.QueryString["classID"]!="")?Request.QueryString["classID"].ToString():"0";
  46. ViewState["boardid"] = boardid;
  47. ViewState["classid"] = classid;
  48. SqlDataReader dr = null;
  49. BBSClass bbsclass = new BBSClass();
  50. dr = bbsclass.GetModifyBBSBoard(boardid);
  51. while(dr.Read())
  52. {
  53. lblBoardName.Text = dr["board_name"].ToString();
  54. }
  55. dr.Close();
  56. BindGrid();
  57. backlink.HRef = "Catalog.aspx?ClassID="+Request.QueryString["ClassID"];
  58. }
  59. else
  60. {
  61. boardid = Int32.Parse(ViewState["boardid"].ToString());
  62. classid = ViewState["classid"].ToString();
  63. }
  64. }
  65. private void BindGrid()
  66. {
  67. SqlDataReader dr = null;
  68. DataTable dt = new DataTable();
  69. BBSClass bbsclass = new BBSClass();
  70. BBSForumItem bbsforumitem = new BBSForumItem();
  71. bbsforumitem.BoardID = boardid;
  72. try
  73. {
  74. dr = bbsclass.GetBBSForumItem(bbsforumitem);
  75. dt = Tools.ConvertDataReaderToDataTable(dr);
  76. //在DataTable的末尾加上空行,使得DataGrid固定行数
  77. int blankrows = ItemList.PageSize - (dt.Rows.Count % ItemList.PageSize);
  78. for (int i = 0; i < blankrows; i++)
  79. {
  80. dt.Rows.Add(dt.NewRow());
  81. }
  82. ItemList.DataSource = dt.DefaultView;
  83. ItemList.DataBind();
  84. string innerstring = "";
  85. //显示板块公告
  86. SqlDataReader dr_bulletin = bbsclass.GetBulletin(boardid);
  87. while(dr_bulletin.Read())
  88. {
  89. innerstring += "<a href='display.aspx?ItemID=" + dr_bulletin["item_id"] + "&BoardID=" + boardid + "'title='" + dr_bulletin["content"] + "' target=_blank>" + dr_bulletin["title"].ToString() + "</a> (" + DateTime.Parse(dr_bulletin["send_time"].ToString()).ToString() + ") ";
  90. }
  91. dr_bulletin.Close();
  92. mar_bulletin.InnerHtml = innerstring;
  93. innerstring = "";
  94. //显示系统公告
  95. SqlDataReader dr_sysbulletin = bbsclass.GetSysBulletin();
  96. while(dr_sysbulletin.Read())
  97. {
  98. innerstring += "<a href='display.aspx?ItemID=" + dr_sysbulletin["item_id"] + "&BoardID=" + boardid + "'title='" + dr_sysbulletin["content"] + "' target=_blank>" + dr_sysbulletin["title"].ToString() + "</a>(" + DateTime.Parse(dr_sysbulletin["send_time"].ToString()).ToString() + ")";
  99. }
  100. dr_sysbulletin.Close();
  101. sys_bulletin.InnerHtml = innerstring;
  102. //对于空纪录不显示图片等其他信息
  103. for(int i=0;i<ItemList.Items.Count;i++)
  104. {
  105. if(ItemList.DataKeys[i].ToString()=="")
  106. {
  107. ItemList.Items[i].FindControl("bias").Visible = false;
  108. ItemList.Items[i].FindControl("image").Visible = false;
  109. }
  110. }
  111. lbl_totalrecord.Text =ItemList.PageCount.ToString();
  112. lbl_curpage.Text = txb_PageNo.Text = (ItemList.CurrentPageIndex + 1).ToString();
  113. txb_ItemPerPage.Text = ItemList.PageSize.ToString();
  114. lbl_totalpage.Text = ItemList.PageCount.ToString();
  115. }
  116. catch(Exception ex)
  117. {
  118. UDS.Components.Error.Log(ex.Message);
  119. Server.Transfer("../../Error.aspx");
  120. }
  121. }
  122. /*
  123. private void PagerButtonClick(object sender, System.Web.UI.ImageClickEventArgs e)
  124. {
  125. //获得LinkButton的参数值
  126. String arg = ((ImageButton)sender).CommandArgument;
  127.           
  128. switch(arg)
  129. {
  130. case ("next"):
  131. if (ItemList.CurrentPageIndex < (ItemList.PageCount - 1))
  132. ItemList.CurrentPageIndex ++;
  133. break;
  134. case ("pre"):
  135. if (ItemList.CurrentPageIndex > 0)
  136. ItemList.CurrentPageIndex --;
  137. break;
  138. case ("first"):
  139. ItemList.CurrentPageIndex=0;
  140. break;
  141. case ("last"):
  142. ItemList.CurrentPageIndex = (ItemList.PageCount - 1);
  143. break;
  144. default:
  145. //本页值
  146. ItemList.CurrentPageIndex = Convert.ToInt32(arg);
  147. break;
  148. }
  149. BindGrid();
  150. }            
  151. private void btnGo_Click(object sender, System.EventArgs e)
  152. {
  153. //页面直接跳转的代码
  154. if(txb_PageNo.Text.Trim()!="")
  155. {
  156. int PageI=Int32.Parse(txb_PageNo.Text.Trim())-1;
  157. if (PageI >=0 && PageI < (ItemList.PageCount))
  158. ItemList.CurrentPageIndex = PageI ;
  159. BindGrid();
  160. }
  161. private void txb_ItemPerPage_TextChanged(object sender, System.EventArgs e)
  162. {
  163. if(txb_ItemPerPage.Text.Trim()!="")
  164. {
  165. int itemPage=Int32.Parse(txb_ItemPerPage.Text.Trim());
  166. if(itemPage>0)
  167. ItemList.PageSize =  Int32.Parse(txb_ItemPerPage.Text.Trim());
  168. }
  169. BindGrid();
  170. }
  171. */
  172. public void ItemList_PageIndexChanged(object source,  System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
  173. {
  174. ((DataGrid)source).CurrentPageIndex = e.NewPageIndex;
  175. BindGrid();
  176. }
  177. #region Web Form Designer generated code
  178. override protected void OnInit(EventArgs e)
  179. {
  180. //
  181. // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
  182. //
  183. InitializeComponent();
  184. base.OnInit(e);
  185. }
  186. /// <summary>
  187. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  188. /// 此方法的内容。
  189. /// </summary>
  190. private void InitializeComponent()
  191. {    
  192. this.Load += new System.EventHandler(this.Page_Load);
  193. this.ItemList.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.ItemList_PageIndexChanged);
  194. }
  195. #endregion
  196. }
  197. }