天天看点

gridview和CheckBox结合实现多选,并用用table显示出来。

主要是实现用checkbox选择,

gridview和CheckBox结合实现多选,并用用table显示出来。
用gridview显示出来后,我选择几个checkbox后点击申请在后台出现如下界面,
gridview和CheckBox结合实现多选,并用用table显示出来。

我上面点了两个,后面就用Table显示出两条记录。

1.首先在Gridview中添加个复选框。

gridview和CheckBox结合实现多选,并用用table显示出来。
添加复选框代码

<Columns>
                        <asp:TemplateField >
                            <ItemTemplate>
                                <asp:CheckBox ID="CheckBox1" runat="server" />
                            </ItemTemplate>
                            <HeaderTemplate>
                               <asp:CheckBox ID="CheckBoxALL" runat="server" AutoPostBack="True" oncheckedchanged="HeaderCheckBoxALL_CheckedChanged" />
                            </HeaderTemplate>
                            <HeaderStyle Font-Size="9pt" Width="20px" />
                        </asp:TemplateField>      

后台增加复选框的选择功能 双击申请的那个按钮后。

protected void btsq_Click(object sender, EventArgs e)
        {

               //用IList存储选择了哪个复选框。
                IList<string> zcbmList = new List<string>();
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
                {
                    CheckBox cbox = (CheckBox)(GridView1.Rows[i].FindControl("CheckBox1"));
if (cbox.Checked == true)
                    {
                //用循环查出来哪个复选框选中,并把这个行的第二列的值存到IList中。我这里第二列是唯一标示列        
                            zcbmList.Add(GridView1.Rows[i].Cells[2].Text);


                    }

                }

         //用Session传递值。
                Session["zcbmList"] = zcbmList;
                Response.Redirect("shenqing.aspx");
return;
            }      

选择事件加完后,就到shenqing.aspx界面去接受Session

public partial class shenqing : ModulePage
    {
        IList<string> zcbmList = null;
protected void Page_Load(object sender, EventArgs e)
        {
//接受前面界面传递过来的SESSION值
            zcbmList = Session["zcbmList"] as List<string>;
if (!IsPostBack)
            {
string sql1 = "select 资产编码, 设备编码,设备名称,规格型号,自编号,投产日期,生产厂家,资产原值,帐面价值,备注,使用情况 from 设备基础数据表 where ";      
        //用foreach语句和拼接功能实现对复选框选择传递过来的值进行遍历。
foreach (var zcbm in zcbmList)
                {
if (zcbmList.IndexOf(zcbm) < zcbmList.Count - 1)
                    {
                        sql1 += "资产编码='" + zcbm + "' or ";
                    }
else
                    {
                        sql1 += "资产编码='" + zcbm + "'";
                    }

                }

                DataTable table = OracleHelper.ExecuteDataset(base.Conn, CommandType.Text, sql1).Tables[0];      
        //把table存储上,要不你没回刷新页面后这个Table就会为空,出现错误。在前台在绑定。
                ViewState["table"] = table;

            }
        }      
<% foreach (System.Data.DataRow row in ((System.Data.DataTable)ViewState["table"]).Rows)
           { %>
        <tr>
            <td class="style65">
                <input type="text" ID="tbzcbm "  class="SmallInput" ReadOnly ="true" Width="118px" value="<%= row["资产编码"] %>" />
            </td>
            <td class="style13">
                <input type="text" ID="tbzcmc"   class="SmallInput" ReadOnly ="true" value ="<%=row["设备名称"] %>"></input>
            </td>
            <td class="style41">
                <input type="text" ID="tbzcxh" class="SmallInput" ReadOnly ="true" value ="<%=row["规格型号"] %>"></input>
            </td>
            <td class="style42">
                <input type="text" ID="tbzbh"  class="SmallInput" ReadOnly ="true" value ="<%=row["自编号"] %>"></input>
            </td>
            <td class="style16">
                <input type="text" ID="tbtcrq"  class="SmallInput" ReadOnly ="true" value="<%=row["投产日期"] %>"></input>
            </td>
            <td class="style43">
                <input type="text" ID="tbsccj"  class="SmallInput" ReadOnly ="true" value ="<%=row["生产厂家"] %>"></input>
            </td>
            <td class="style44">
                <input type="text" ID="tbyz"  class="SmallInput" ReadOnly ="true" value ="<%=row["资产原值"] %>"></input>
            </td>
            <td class="style19">
                <input type="text" ID="tbzmjz"  class="SmallInput" ReadOnly ="true" value ="<%=row["帐面价值"] %>"></input>
            </td>
            <td class="style74">
                <input type="text" ID="tbbz"  class="SmallInput" ReadOnly ="true" value="<%=row["备注"] %>"></input>
            </td>
        </tr>
        <%}%>