.NET中遍历DataList控件,像MSN中的全选
想要和MSN邮件一样具有全选的功能么,一下就是一个例子,在.NET中好像比Javascript麻烦,全选一次就要发回服务器端端执行,不过,这带来的封装代码的好处,可以不将代码显示给界面开发者,有利于保护代码,以下是用脚本似的开发,可以将其中的代码编译为dll文件达到封装代码的效果。
<%@ Page Language="c#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
void Page_Load(Object Src, EventArgs E ) {
if (!Page.IsPostBack) {
SqlConnection myConnection = new SqlConnection "server=local);database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='business'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
void Submit_Click(Object Src, EventArgs E ) {
for (int i=0; i<MyDataList.Items.Count; i++) {
String isChecked = ((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked.ToString();
Message.InnerHtml += "Item(" + i + "): " + isChecked + "<br>";
}
}
void Button1_Click(object sender, EventArgs e) {
for (int i=0; i<MyDataList.Items.Count; i++) {
if(((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked==true)
((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked=false;
else
((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked=true;
}
}
</script>
<html>
<head>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form runat="server">
<ASP:DataList id="MyDataList" runat="server" RepeatColumns="2">
<ItemTemplate>
<table cellpadding="10" style="font: 10pt verdana">
<tr>
<td width="1" bgcolor="BD8672" />
<td valign="top">
<img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' />
</td>
<td valign="top">
<b>Title: </b><%# DataBinder.Eval(Container.DataItem, "title") %>
<br />
<b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type") %>
<br />
<b>Publisher ID: </b><%# DataBinder.Eval(Container.DataItem, "pub_id") %>
<br />
<b>Price: </b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
<p>
<asp:CheckBox id="Save" runat="server" />
<b>Save to Favorites</b>
</p>
</td>
</tr>
</table>
</ItemTemplate>
</ASP:DataList>
<p>
</p>
<div style="PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
<input type="submit" value="Update Favorites" runat="server" onserverclick="Submit_Click" />
<asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Button"></asp:Button>
</div>
<p>
</p>
</form>
<div id="Message" style="FONT: 10pt verdana" runat="server" enableviewstate="false">
</div>
</body>
</html>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
void Page_Load(Object Src, EventArgs E ) {
if (!Page.IsPostBack) {
SqlConnection myConnection = new SqlConnection "server=local);database=pubs;Integrated Security=SSPI");
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Titles where type='business'", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Titles");
MyDataList.DataSource = ds.Tables["Titles"].DefaultView;
MyDataList.DataBind();
}
}
void Submit_Click(Object Src, EventArgs E ) {
for (int i=0; i<MyDataList.Items.Count; i++) {
String isChecked = ((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked.ToString();
Message.InnerHtml += "Item(" + i + "): " + isChecked + "<br>";
}
}
void Button1_Click(object sender, EventArgs e) {
for (int i=0; i<MyDataList.Items.Count; i++) {
if(((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked==true)
((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked=false;
else
((CheckBox) MyDataList.Items[i].FindControl("Save")).Checked=true;
}
}
</script>
<html>
<head>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form runat="server">
<ASP:DataList id="MyDataList" runat="server" RepeatColumns="2">
<ItemTemplate>
<table cellpadding="10" style="font: 10pt verdana">
<tr>
<td width="1" bgcolor="BD8672" />
<td valign="top">
<img align="top" src='<%# DataBinder.Eval(Container.DataItem, "title_id", "/quickstart/aspplus/images/title-{0}.gif") %>' />
</td>
<td valign="top">
<b>Title: </b><%# DataBinder.Eval(Container.DataItem, "title") %>
<br />
<b>Category: </b><%# DataBinder.Eval(Container.DataItem, "type") %>
<br />
<b>Publisher ID: </b><%# DataBinder.Eval(Container.DataItem, "pub_id") %>
<br />
<b>Price: </b><%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
<p>
<asp:CheckBox id="Save" runat="server" />
<b>Save to Favorites</b>
</p>
</td>
</tr>
</table>
</ItemTemplate>
</ASP:DataList>
<p>
</p>
<div style="PADDING-RIGHT: 15px; PADDING-LEFT: 15px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">
<input type="submit" value="Update Favorites" runat="server" onserverclick="Submit_Click" />
<asp:Button id="Button1" onclick="Button1_Click" runat="server" Text="Button"></asp:Button>
</div>
<p>
</p>
</form>
<div id="Message" style="FONT: 10pt verdana" runat="server" enableviewstate="false">
</div>
</body>
</html>
posted on 2004-07-04 19:19 Jacobhuang 阅读(3156) 评论(8) 编辑 收藏 举报