JQuery与GridView控件结合示例
protected void Page_Load(object sender, EventArgs e)
- {
- if (!Page.IsPostBack)
- {
- DataTable dt = new DataTable();
- dt.Columns.AddRange(new DataColumn[] {
- new DataColumn("id",typeof(Int32)),
- new DataColumn("num1",typeof(Int32)),
- new DataColumn("num2",typeof(Int32))
- });
- DataRow dr = null;
- dr = dt.NewRow();
- dr["id"] = 1;
- dr["num1"] = 20;
- dr["num2"] = 40;
- dt.Rows.Add(dr);
- dr = dt.NewRow();
- dr["id"] = 2;
- dr["num1"] = 40;
- dr["num2"] = 30;
- dt.Rows.Add(dr);
- this.GridView1.DataSource = dt.DefaultView;
- this.GridView1.DataBind();
- }
- }
<body>
- <form id="form1" runat="server">
- <div>
- <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
- <Columns>
- <asp:TemplateField HeaderText="状态">
- <ItemTemplate>
- <asp:CheckBox ID="checkstate" runat="server" />
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="编号">
- <ItemTemplate>
- <asp:Label ID="lblId" runat="server"> <%#Eval("id") %></asp:Label>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="数字1">
- <ItemTemplate>
- <asp:Label ID="lblNum1" runat="server"> <%#Eval("num1") %></asp:Label>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="数字2">
- <ItemTemplate>
- <asp:Label ID="lblNum2" runat="server"> <%#Eval("num2") %></asp:Label>
- </ItemTemplate>
- </asp:TemplateField>
- <asp:TemplateField HeaderText="平均值">
- <ItemTemplate>
- <asp:TextBox ID="avg_value" runat="server" />
- </ItemTemplate>
- </asp:TemplateField>
- </Columns>
- </asp:GridView>
- </div>
- </form>
- </body>
<script src="js/jquery-1.4.2.js"></script>
- <script type="text/javascript">
- $(function () {
- $("#<%=GridView1.ClientID%>").find("tr td input[type=checkbox]").each(function () {
- $(this).bind("click", function () {
- if (this.checked) {
- var id = $(this).parent().parent().find("span[id*=lblId]").text();
- var num1 = $(this).parent().parent().find("span[id*=lblNum1]").text();
- var num2 = $(this).parent().parent().find("span[id*=lblNum2]").text();
- var result = (parseFloat(num1) + parseFloat(num2)) / 2;
- $(this).parent().parent().find("input[id*=avg_value]").val(result);
- } else {
- $(this).parent().parent().find("input[id*=avg_value]").val("");
- }
- });
- });
- });
- </script>
浙公网安备 33010602011771号