ASPX<head runat="server" id="Header1">
    <title>Untitled Page</title>
   <script type="text/javascript">
   function validate()
   {
        var container = document.getElementById('<%= DataList1.ClientID %>');
        var inputs = container.getElementsByTagName("input");
        var sum = 0;
        for(var i=0;i<inputs.length;i++)
        {
            if (inputs[i].type=='text')
           {
                var value = parseInt(inputs[i].value);
                if (isNaN(value))
                {
                    alert("请输入数字");
                    return false; 
                }
                if(value <= 0 || value > 100)
                {
                    alert("成分超出有效范围");
                    return false; 
                }
                sum = sum + value;
                if (sum> 100)
                {
                    alert("总数超过100");
                    return false;
                }
           } 
        }
        return true;
   }
   </script> 
</head>        <asp:DataList ID="DataList1" runat="server" OnItemCommand="DataList1_ItemCommand">
        <ItemTemplate>
            <asp:Label runat="server" ID="labDescn" Text='<%# Container.DataItem %>' AssociatedControlID="editName" />
            <asp:TextBox ID="editName" runat="server" /> 
        </ItemTemplate>
        <FooterTemplate>
        <asp:Button ID="btnSubmit" runat="server" Text="Submit" CommandName="submit" OnClientClick="return validate();"/>
        </FooterTemplate>
        </asp:DataList>C# using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections;public partial class _Default : System.Web.UI.Page 
{    protected string[] ItemNames
    {
        get
        {
            return new string[] { "Item A", "Item B", "Item C" };
        }
    }    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            DataList1.DataSource = ItemNames;
            DataList1.DataBind();
        }
    }
    protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
    {
        switch (e.CommandName)
        {
            case "submit":
                for (int i = 0; i < ItemNames.Length; i++)
                {
                    TextBox tb = DataList1.Items[i].FindControl("editName") as TextBox;
                    if (null != tb)
                    {
                        Response.Write(tb.Text);
                        Response.Write("<br/>");
                    }
                }
                break;
        }
    }
}