用DataList 控制元件开发的一个简单的留言本程序

1@ Import Namespace="System.Data" 
1@ Import Namespace="System.Data.ADO" 
 1<html>
 2<body bgcolor="White">
 3<h3>DataList 控制元件<hr/></h3>
 4<div id="Message" runat="server"></div>
 5<form runat="server">
 6<table border="0" cellpadding="0" cellspacing="0" width="776">
 7<tr>
 8<td width="2%"><img height="20" src="images/up.gif" width="16"/></td>
 9<td align="center" bgcolor="#333333" width="98%"><font color="#ffffcc" face="宋体"><b>留言本</b></font></td>
10</tr>
11</table>
12<asp:datalist border="1" bordercolor="Black" cellpadding="2" cellspacing="0" headerstyle-backcolor="#888888" headertemplate-colspan="3" id="DataList1" itemstyle-backcolor="#eeeeee" onitemcommand="DataList_ItemCommand" runat="server" selecteditemstyle-backcolor="#ffffff" width="776">
13<!--编号模版-->
14<template name="HeaderTemplate">
15<asp:linkbutton forecolor="#ffffff" id="Tosay" runat="server" text="我要发言"></asp:linkbutton>
16<a href="temp.aspx"><font color="#ffffff">刷新界面</font></a>
17<asp:linkbutton forecolor="#ffffff" id="Mange" runat="server" text="管理留言"></asp:linkbutton>
18</template>
19<!--内容模版-->
20<template name="ItemTemplate">   

Container.DataItem("book_id")

Container.DataItem("content")

 1<asp:linkbutton forecolor="#333333" id="Detail" runat="server" text="查看详细内容"></asp:linkbutton>
 2</template>
 3<!--查看留言模版-->
 4<template name="SelectedItemTemplate">   
 5编号: ```
 6# Container.DataItem("book_id")
 7```<br/>   
 8发言人: ```
 9# Container.DataItem("username")
10```<br/>   
11时间: ```
12# Container.DataItem("post_time")
13```<br/>   
14内容: ```
15# Container.DataItem("content")
16```<br/>
17<div align="right"><asp:linkbutton forecolor="#333333" id="Title" runat="server" text="关闭"></asp:linkbutton></div>
18</template>
19</asp:datalist>
20<table border="0" cellpadding="0" cellspacing="0" id="foot" runat="server" visible="false" width="776">
21<tr>
22<td bgcolor="#000000">
23<table border="0" cellpadding="3" cellspacing="1" width="100%">
24<tr bgcolor="#ffffff">
25<td>大名:<input id="Username" runat="server" size="20" type="Text"/><br/>   
26留言:<input id="Content" runat="server" size="20" type="Text"/>
27<asp:linkbutton autopostback="" id="save" onclick="LinkButton1_Click" runat="server" text="保存"></asp:linkbutton><br/>
28<asp:linkbutton id="close" onclick="LinkButton2_Click" runat="server" text="关闭"></asp:linkbutton></td>
29</tr>
30</table>
31</td>
32</tr>
33</table>
34<table border="0" cellpadding="0" cellspacing="0" width="776">
35<tr>
36<td align="center" bgcolor="#333333" width="98%"><font color="#ffffcc" face="宋体"><b> 留言本</b></font></td>
37<td width="2%"><img height="20" src="images/dn.gif" width="16"/></td>
38</tr>
39</table>
40</form>
41<hr/>
42<asp:label id="Label1" runat="server"></asp:label>
43</body>
44</html>
 1<script language="VB" runat="server">
 2
 3Sub Page_Load(sender As Object, e As EventArgs)   
 4DataList1.DataSource = CreateDataView( "data.mdb", "guestbook" )   
 5DataList1.DataBind()   
 6End Sub 
 7
 8Function CreateDataView( Db As String, Table As String ) As DataView   
 9Dim Provider, ConnStr, SQL As String   
10Provider = "Microsoft.Jet.OLEDB.4.0;"   
11ConnStr = "Provider=" & Provider & _   
12"Data Source=" & Server.MapPath( Db )   
13Dim Cmd As ADODataSetCommand   
14Cmd = New ADODataSetCommand( "Select * from " & Table &" Order By post_time DESC", ConnStr )   
15Dim ds As DataSet = new DataSet()   
16Cmd.FillDataSet(ds, Table)   
17CreateDataView = new DataView(ds.Tables(Table))   
18End Function 
19
20Sub DataList_ItemCommand(sender As Object, e As DataListCommandEventArgs)   
21select case e.CommandSource.Text   
22case "我要发言"   
23foot.Visible = true   
24  
25case "管理留言" 
26
27case "查看详细内容"   
28DataList1.SelectedIndex = e.Item.ItemIndex '查看留言模版被选中   
29case "关闭"   
30DataList1.SelectedIndex = -1   
31end select   
32DataList1.DataSource = CreateDataView( "data.mdb", "guestbook" )   
33DataList1.DataBind()   
34End Sub   
35Sub LinkButton2_Click(sender As Object, e As EventArgs)   
36foot.Visible = false   
37End Sub 
38
39Sub LinkButton1_Click(sender As Object, e As EventArgs)   
40Dim ConnStr, SQL As String   
41SQL = "Insert Into GuestBook (userName,post_time,content) Values ('"& Username.Value &"','"& DateTime.Now &"','"& Content.Value &"')"   
42ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _   
43"Data Source=" & Server.MapPath( "data.mdb" )   
44Dim Cmd As ADOCommand = New ADOCommand( SQL, ConnStr )   
45Cmd.ActiveConnection.Open()   
46Cmd.Execute()   
47Message.InnerHtml = "<B>留言成功!</B>"   
48foot.Visible = false   
49Page.Navigate("temp.aspx")   
50End Sub   
51</script>

研究了好长时间,可最后那句Page.Navigate("temp.aspx")还是达不到及时刷新的效果:(,看精华区有篇C#编的是在PAGE_LOAD事件里面接收REQUEST.FORM对象后INSERT立即更新DATESET,不知道我这个怎么弄好...

Published At
Categories with Web编程
Tagged with
comments powered by Disqus