📄 main.aspx
字号:
<!--该页的作用是将news表中的所有数据以列表的形式简单的显示给用户,但不真正显示
每条新闻的详细内容,只显示标题,录入日期及提供对上传附件的链接,真正的显示
新闻详细内容的是newsview.aspx,用户通过点击新闻的标题而调用。
本页还支持三种查询,即发贴部门(sendmen)、新闻标题(otitle)、发布日期(odate)
且新闻标题查询方式支持模糊查询
-->
<!--通过该实例得到的经验:
1、在DataGrid控件中使用非HyperLinkColumn列来实现打开新窗口,并设定新窗口的属性。
2、将数据表中的字段以下拉列表框的形式显示,使用数据绑定的方法。
-->
<%@ Page Language="VB" ContentType="text/html" %>
<%@ Import Namespace="system.data" %>
<%@ Import Namespace="system.data.oledb" %>
<html>
<head>
<title>最新资讯</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="CSS.CSS" rel="stylesheet" type="text/css">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features);
}
//-->
</script></head>
<body bgcolor="#CCCCCC">
<form runat="server">
<input type="hidden" id="zfilter" runat="server">
<center>
<table width="549" border="0" cellpadding="0" cellspacing="0" background="pic/002.png" bordercolorlight="#008080" bordercolordark="#CCCCCC">
<tr>
<td width="287" height="20"><font color="#FFFFFF"> <strong>最新咨询</strong></font></td>
<td width="83" height="20"><font color="#FFFFFF">按部门</font></td>
<td width="179"><asp:dropdownlist Font-Size="10" ID="zbmlist" runat="server"></asp:dropdownlist>
<font color="#FFFFFF">
<asp:button Font-Size="10" ID="zfindbm" runat="server" Text="查询" OnClick="zbmft" />
</font></td>
</tr>
</table>
<asp:datagrid runat="server" ID="mygrid"
AutoGenerateColumns="false"
AllowPaging="true"
PageSize="10"
OnPageIndexChanged="zscpage"
BorderColor="#008080"
BorderWidth="1"
Width="549"
>
<headerstyle BackColor="#FFFFFF" HorizontalAlign="center" />
<itemstyle BackColor="#FFFFFF" HorizontalAlign="center" />
<pagerstyle BackColor="#FFFFFF" NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="right" />
<columns>
<asp:templatecolumn HeaderText="主题" ItemStyle-HorizontalAlign="left" ItemStyle-Width="280">
<itemtemplate>
<img src="pic/multipage.gif"> <a href="#" onClick=MM_openBrWindow('newsview.aspx?id=<%# container.dataitem("id") %>','','scrollbars=yes,width=565,height=400,left=1,top=1')><%# container.dataitem("otitle") %></a>
</itemtemplate>
</asp:templatecolumn>
</columns>
<columns>
<asp:templatecolumn HeaderText="日期" ItemStyle-Width="90">
<itemtemplate>
<%# format(container.dataitem("odate"),"yyyy-MM-dd") %>
</itemtemplate>
</asp:templatecolumn>
<asp:boundcolumn DataField="sendmen" HeaderText="发布者" ItemStyle-Width="99" />
</columns>
<columns>
<asp:templatecolumn HeaderText="附件" ItemStyle-Width="80">
<itemtemplate>
<a href='<%# session("sharedownpath") & container.dataitem("ofilename") %>'><img src="pic/images/DOWNLOAD.gif" border="0"></a>
</itemtemplate>
</asp:templatecolumn>
</columns>
</asp:datagrid> <strong><font color="#FF0000"><br>
关键字:</font></strong>
<asp:textbox BorderStyle="solid" BorderWidth="1" Font-Size="10" ID="zqtlist" runat="server" TextMode="SingleLine" />
<asp:dropdownlist ID="zfilttype" runat="server">
<asp:listitem Text="按标题" value="otitle" />
<asp:listitem Text="按日期" value="odate" />
</asp:dropdownlist>
<asp:button ID="zfind" runat="server" Text="查询" onclick="zqtfind" />
<br>
<asp:label ID="msg" runat="server"></asp:label>
</center>
</form>
</body>
</html>
<script language="VB" runat="server">
sub bindlist()
'绑定数据表DataGrid,这里绑定的是经过筛选后的数据
dim uinfo()=session("lguinfo")
dim conn as new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("office.mdb"))
conn.open()
dim objada as new oledbdataadapter("select * from news order by id DESC",conn)
'得到新闻表(news)中的所有数据
dim ds as new dataset()
objada.fill(ds,"news")
dim dt as datatable=ds.tables("news")
dim dv as new dataview(dt)
dv.rowfilter=zfilter.value
'zfilter是一个隐藏字段,它保存了用户在客户端设置的筛选字串
'这里是修改dataview对象的筛选字串
mygrid.datasource=dv
mygrid.databind()
conn.close()
end sub
sub bmlist()
'这个过程是将部门数据表中的部门字段绑定到下拉列表框中,供用户通过上传
'新闻不的各部门进行筛选
dim conn as new oledbconnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath("office.mdb"))
conn.open()
dim objada as new oledbdataadapter("select btype from btype",conn)
'选择部门表(btype)中的部门名称
dim ds as new dataset()
objada.fill(ds,"btype")
zbmlist.datasource=ds.tables("btype")
zbmlist.datatextfield="btype"
zbmlist.datavaluefield="btype"
zbmlist.databind()
'为下拉列表框增加数据绑定
zbmlist.items.add(zbmlist.items.count-1)
zbmlist.items(zbmlist.items.count-1).text="所有部门"
zbmlist.items(zbmlist.items.count-1).value="所有部门"
'在下拉列表框中加入一选项,提供给用户所有部门的选择
conn.close()
end sub
sub page_load(s as object,e as eventargs)
if not ispostback then
'第一次启动该页时,为下拉列表框及DataGrid绑定数据
bindlist()
bmlist()
end if
end sub
sub zscpage(s as object,e as DataGridPageChangedEventArgs)
'为DataGrid对象提供翻页功能
s.currentpageindex=e.newpageindex
bindlist()
end sub
sub zbmft(s as object,e as eventargs)
'此过程用来对部门进行过滤,此过程中的过滤与zqtfind过程中的过滤字串不是
'同时生效的,如果设置了部门过滤,则先去掉zqtfind过程中的过滤字串,然后
'再设置过滤条件为相应的部门,即zqtfind过程中的过滤条件与本过程中的过滤
'条件没有or关系也没有and关系
dim bmstr as string
bmstr=zbmlist.selecteditem.value
if bmstr="所有部门" then
zfilter.value=""
'当用户选择所有部门时,去掉过滤字串,使SQL得到所有的数据
else
zfilter.value="sendmen='" & bmstr & "'"
'zfilter是一个runat="server"的隐藏变量,即可以在服务端直接调用,
'修改该变量的值,使表单在提交后能保存用户所选择的过滤条件。
end if
'msg.text=zfilter.value
bindlist()
end sub
sub zqtfind(s as object,e as eventargs)
'此过程用来对其它类别进行过滤,这里设置的条件与部门条件不存在OR关系也没有AND关系。
if zqtlist.text<>"" then
'当关键字段不为空时才设置过滤条件
dim lstype as string=zfilttype.selecteditem.value
if lstype="odate" then
if isdate(zqtlist.text) then
'因为odate是日期型字段,所以构造filter字串的方式不同
zfilter.value="odate" & "=#" & cdate(zqtlist.text) & "#"
else
'为了避免用户输入的数据非日期型数据,就清空过滤参数
zfilter.value=""
end if
else
zfilter.value=zfilttype.selecteditem.value & " like '%" & zqtlist.text & "%' "
'当用标题(otitle)来查询时,使用模糊查询
end if
else
zfilter.value=""
end if
'msg.text=zfilter.value
bindlist()
end sub
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -