EBS form二次开发 如何用checkbox在第一个界面勾选n行数据,传送到下一个页面显示出来

EBS form二次开发 如何用checkbox在第一个界面勾选n行数据,传送到下一个页面显示出来

问题描述:

小弟现在需要做这么一个,在queryfind 中查出若干行数据,在带有复选框列表中显示,然后勾选n条数据后点击‘打开’按钮,跳转到另一个页面,勾选中的数据能够自动跳入列表中并显示

谢谢图片说明

应该是在 打开 按钮的WHEN-BUTTON-PRESSED中GO到另一个数据块,根据你所勾选的行的的字段取查询另一组数据。 就是实现展示另一个window,新window的数据是根据你所勾选的行关联

前台JS 和 repeater

function FormSelectAll(formID, EleName, e) //formID:目标复选框组所在的form表单的ID属性;Elename:目标复选框组共同的Name属性;e:用于标识是否全选的复选框自身,用户判断是“全选”还是“全不选” { var Elements = document.getElementById(formID).elements; //获取目标复选框组所在的Form表单 for (var i = 0; i < Elements.length; i++) { if (Elements[i].type == "checkbox" && Elements[i].name.indexOf(EleName) >= 0) //根据对象类型和对象的name属性判断是否为目标复选框 { Elements[i].checked = e.checked; //根据用于控制的复选框的选中情况判断是否选中目标复选框 } } }
    <asp:Repeater ID="rptProject_list" runat="server" 
        OnItemDataBound="rptProject_list_ItemDataBound" 
        onitemcommand="rptProject_list_ItemCommand">
        <HeaderTemplate>
            <table id="tb" style="width: 100%; margin-top: 5px;" class="table table-bordered table-condensed">
                <thead>
                    <tr style="background-color: #FFFFFF" onmouseover="this.style.backgroundColor= '#AAC7FF' "
                        onmouseout="this.style.backgroundColor= '#FFFFFF' ">
                        <th style="width: 5%">
                            全选<input name="CheckAll" type="checkbox" value="" onclick="javascript:FormSelectAll('form1','CheckBox',this);" />
                        </th>
                    </tr>
                </thead>
        </HeaderTemplate>
        <ItemTemplate>
            <tr style="background-color: #FFFFFF; text-align: center;">
                <%--<td>
                    <input name="CheckBox" id="CheckBox" runat="server" type="checkbox" value='<%#Eval("id") %>' />
                </td>--%>
                <itemtemplate> 
                        <td> 
                        <asp:HiddenField ID="hide_id" runat="server" Value='<%#Eval("id") %>' />//用于保存你想要的传递的值
                        <%# Container.ItemIndex + 1%> 
                       </td> 
                        </itemtemplate>
            </tr>
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:Repeater>

            后台点击按钮传递复选框中被选中项的ID
             protected void btn_save_Click(object sender, EventArgs e)
            {
                                    string ids = string.Empty;
                for (int i = 0; i < this.rptProject_list.Items.Count; i++) //根据Repeater 控件的情况执行循环判断目标复选框是否被选中
               { 
                   HtmlInputCheckBox CB = (HtmlInputCheckBox)this.rptProject_list.Items[i].FindControl("CheckBox");    //获取一个目标复选框情况
                    if (CB.Checked == true)                       //判断该复选框是否被选中
                    {
                        ids += CB.Value + ",";          //程序处理代码
                    }
                }
                                    Response.Redirect("winform1.aspx?ids=" + ids); //勾选复选框中的值以逗号分隔传递到winform1.aspx页面
            }

            //winform1.aspx页面接收值split(',')数据处理下
            protected void Page_Load(object sender, EventArgs e)
    {
                if(Request.QueryString["ids"] != nll || Request.QueryString["ids"].toString() != "")
                {
                    string  ids = Request.QueryString["ids"].tostring();
                    string[] ss = ids.Split(',');
                    for(int i =0; i < ss.Length; i++)
                    {
                        //循环ss有多少条数据   ss[i] 获取
                    }
                }
            }
            希望对你有帮助!