.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>
<%@ 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>posted on 2004-07-04 19:19 Jacobhuang 阅读(3172) 评论(8) 收藏 举报
                    
                
    
        
                
            
        
浙公网安备 33010602011771号