• 我在Repeater控件中有CheckBox控件,我怎么能选中CheckBox控件后,Repeater控件重新绑定一下?


    Sample:

    <%@ Page Language="C#" %>
    <%@ Import Namespace="System.Data" %>

    <%-- http://community.csdn.net/Expert/TopicView3.asp?id=5654641 --%>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">
        void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack) {
                // 首次加载数据一定要放在 !IsPostBack 内,
                // 避免回发的时候再次绑定数据,覆盖复选框状态
                LoadProductData();           
            }
        }

        void chk_CheckedChanged(object sender, EventArgs e)
        {
            // 触发此事件的 CheckBox
            CheckBox chk = sender as CheckBox;
            // 得到 CheckBox 所在行
            RepeaterItem item = chk.NamingContainer as RepeaterItem;
            // 得到 Repeater,当然这里可以直接引用控件ID
            Repeater grd = item.NamingContainer as Repeater;       
            Label lblProductName = item.FindControl("lblProductName") as Label;
            Response.Write(item.ItemIndex);
            Response.Write(lblProductName.Text);
            // 你自己的绑定代码
            // more codes
            // ...             
        }   

        void LoadProductData()
        {
            DataTable dt = CreateProductTable();
            Repeater1.DataSource = dt;
            Repeater1.DataBind();
        } 

        #region sample data  

        static DataTable CreateProductTable()
        {
            DataTable tbl = new DataTable("Products");

            tbl.Columns.Add("ProductID", typeof(int));
            tbl.Columns.Add("ProductName", typeof(string));
            tbl.Columns.Add("CategoryID", typeof(int));
            tbl.Columns.Add("HasPic", typeof(bool));
            tbl.Columns.Add("Reviewed", typeof(bool));
            DataRow row = tbl.NewRow();
            row[0] = 1;
            row[1] = "Chai";
            row[2] = 1;
            row[3] = true;
            row[4] = false;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 2;
            row[1] = "Chang";
            row[2] = 1;
            row[3] = false;
            row[4] = false;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 3;
            row[1] = "Aniseed Syrup";
            row[2] = 2;
            row[3] = true;
            row[4] = false;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 4;
            row[1] = "Chef Anton's Cajun Seasoning";
            row[2] = 2;
            row[3] = false;
            row[4] = true;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 5;
            row[1] = "Chef Anton's Gumbo Mix";
            row[2] = 2;
            row[3] = true;
            row[4] = true;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 47;
            row[1] = "Zaanse koeken";
            row[2] = 3;
            row[3] = true;
            row[4] = true;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 48;
            row[1] = "Chocolade";
            row[2] = 3;
            row[3] = false;
            row[4] = false;
            tbl.Rows.Add(row);

            row = tbl.NewRow();
            row[0] = 49;
            row[1] = "Maxilaku";
            row[2] = 3;
            row[3] = true;
            row[4] = false;
            tbl.Rows.Add(row);

           return tbl;
        }
      
        #endregion
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>RepeaterCheckBoxAutoPost</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:repeater ID="Repeater1" runat="server">
        <HeaderTemplate>
            <table border="1"><tr><td></td></tr>       
            </HeaderTemplate>
            <ItemTemplate>
            <tr>
                <td><asp:CheckBox ID="chk" runat="server" AutoPostBack="true" OnCheckedChanged="chk_CheckedChanged" /></td>
                <td><%# Eval("ProductName") %></td>
                <td><asp:label ID="lblProductName" runat="server" text='<%# Eval("ProductName") %>' /></td>
            </tr>
            </ItemTemplate>        
            <FooterTemplate>
            </table>
            </FooterTemplate>
            </asp:repeater>
        </div>
        </form>
    </body>
    </html>


     

  • 相关阅读:
    SDK Manager.exe和AVD Manager.exe缺失,Android SDK Tools在检查java环境时卡住了,未响应卡死!
    GetLastError结果列表
    VS2008 远程调试器未成功安装,没法使用?
    远程桌面连接无法相互拷贝文件了?
    VS2008编译错误:error C2065: 'PMIB_TCPSTATS' : undeclared identifier c:program files (x86)microsoft sdkswindowsv7.0aincludeiphlpapi.h 411
    C++ 保存Excel文件(带密码保护)
    UTF8与std:string互转
    将windbg设置为默认调试器命令
    VC++ 链接错误LINK : fatal error LNK1104: cannot open file "*.lib"
    IAP升级程序中Bootloader和APP程序中断复用的解决办法
  • 原文地址:https://www.cnblogs.com/jiangyuxuan/p/843235.html
Copyright © 2020-2023  润新知