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] 获取
}
}
}
希望对你有帮助!