asp.net下用js实现弹出子窗口选定值并返回
对应上一篇博客代码:
父页面:
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=9" >
<title></title>
<script type="text/javascript">
function test() {
//window.showModalDialog("test.aspx?tabname=book", window, 'dialogHeight=400px;dialogWidth=600px;');
window.showModalDialog("B.aspx", window, 'dialogHeight=400px;dialogWidth=600px;');
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="跳转到B页面" OnClientClick="test();"/><br />
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
框架法(fream包含gridview页面):
框架子页面:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=9" >
<title></title>
<script type="text/javascript">
function test() {
var child;
child = window.document.getElementById("child").contentWindow;
window.dialogArguments.document.getElementById("TextBox1").value = child.document.getElementById("tb_name").value;
window.close();
}
</script>
</head>
<frameset>
<frame id="child" src="CZB.aspx?tabname=<%=set_tabname()%>"></frame>
</frameset>
</html>
gridview页面:
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=9" >
<title></title>
<script type="text/javascript">
function set() {
window.parent.test();
}
</script>
</head>
<body>
<form id="form1" runat="server" >
<div>
<asp:TextBox ID="tb_name" runat="server"></asp:TextBox>
<asp:Button ID="bt_in" runat="server" Text="搜索" onclick="bt_in_Click" />
<asp:Button ID="bt_re" runat="server" Text="重置" />
<asp:Button ID="Button1" runat="server" Text="确认选择" onclick="Button1_Click" />
<input id="Button2" type="button" value="回传" onclick="set();"/> <asp:GridView ID="gvSell" runat="server"
onpageindexchanging="GridView1_PageIndexChanging" PageSize="5" >
<Columns>
<asp:TemplateField HeaderText="数据选择">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
<PagerSettings FirstPageText="首页" LastPageText="末页" NextPageText="下一页" PageButtonCount="5" PreviousPageText="上一页" />
<PagerStyle Font-Names="宋体" Font-Size="15px" />
</asp:GridView>
<div class="gridItem" style="padding: 5px; margin: 0px; border: 0; width: 40%; float: left; text-align: left; height: 20px; font-size: 15px;" aria-multiselectable="True"> 共有<span id="spanTotalInfor"></span>条记录 当前第<span id="spanPageNum"></span>页 共<span id="spanTotalPage"></span>页</div>
<div class="gridItem" style=" border-style: none; border-color: inherit; border-width: 0; padding: 5px; width: 225px; float: right; text-align: center; height: 20px; vertical-align: middle; font-size: 15px;"> <span id="spanFirst" ><img src='img/first.png'/></span> <span id="spanPre"><img src='img/back.png'/></span><span id="spanInput" style="margin: 0px; padding: 0px 0px 4px 0px; height:100%; "> 第<input id="Text1" type="text" class="TextBox" onkeyup="x()" style="height:20px; text-align: center" />页 </span><span id="spanNext"><img src='img/front.png'/></span> <span id="spanLast"><img src='img/last.png'/></span> </div>
</div> </form>
</body>
</html>
gridview后台页面:
public partial class CZB : System.Web.UI.Page
{
string str = WebConfigurationManager.ConnectionStrings["TempleConnectionString"].ConnectionString; protected void databind(string sql)
{
using (SqlConnection conn = new SqlConnection(str))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{ cmd.CommandText = sql;
SqlDataAdapter ap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
ap.Fill(ds);
gvSell.DataSource = ds.Tables[];
gvSell.DataBind();
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
databind("select * from book");
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string strs="";
for (int i = ; i <= gvSell.Rows.Count - ; i++)
{
CheckBox cbox = (CheckBox)gvSell.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
strs = gvSell.Rows[i].Cells[].Text.ToString();
tb_name.Text = strs;
}
}
} protected string getvalue()
{
string str;
for (int i = ; i <= gvSell.Rows.Count - ; i++)
{
CheckBox cbox = (CheckBox)gvSell.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
return gvSell.Rows[i].Cells[].Text.ToString();
}
}
return "";
} protected void bt_in_Click(object sender, EventArgs e)
{
string sql = "select * from book where bookName like '%" + tb_name.Text + "%'";
databind(sql);
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gvSell.PageIndex = e.NewPageIndex;
databind("select * from book");
}
}
js实现方法:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function getvalue() {
var table = document.getElementById("gvSell");
var s=0;
for(var i=1;i<table.rows.length;i++) {
var input = table.rows[i].cells[0].getElementsByTagName("input")[0].checked;
if (input == true)
{
window.dialogArguments.document.getElementById("TextBox1").value = table.rows[i].cells[3].innerHTML;
s = 1;
window.close();
}
}
if(s!=1)
alert("您未勾选任何一个选项!");
}
//搜索
function search() {
var content = document.getElementById(tb_name).value;
if (content == "") {
alert("您未输入任何内容!");
return;
}
var table = document.getElementById("gvSell");
var txt = document.getElementById("tb_name").value;
var arr = new Array();
var j = 0;var judge = 0;
//获取相关行数
for (var i = 1; i < table.rows.length; i++) {
if (table.rows[i].cells[3].innerHTML == txt || table.rows[i].cells[3].innerHTML.indexOf(txt) > -1)
{
arr[j] = i;
j++;
}
}
if (j == 0) {
alert("未找到有关数据!");
return;
}
//删除无关的行
for (i = i-1; i > 0; i--) {
judge=0;
for (var k = 0; k < j; k++)
if (arr[k] == i)
judge = 1;
if (judge == 0)
document.getElementById("gvSell").deleteRow(i); }
y();
} function delet() {
document.getElementById("tb_name").value = "";
}
</script> </head>
<body>
<form id="form1" runat="server">
<div>
<input id="tb_name" type="text" />
<input id="Button3" type="button" value="搜索" onclick="search();"/>
<input id="Button1" type="button" value="选择" onclick="getvalue();"/>
<input id="Button2" type="button" value="重置" onclick="delet();"/>
<input id="tb_hidden" type="text" style="visibility: hidden" />
<asp:GridView ID="gvSell" runat="server" >
<Columns>
<asp:TemplateField HeaderText="数据选择">
<ItemTemplate>
<input id="Checkbox2" type="checkbox" />
</ItemTemplate>
</asp:TemplateField>
</Columns> </asp:GridView>
<div class="gridItem" style="padding: 5px; margin: 0px; border: 0; width: 40%; float: left; text-align: left; height: 20px; font-size: 15px;" aria-multiselectable="True"> 共有<span id="spanTotalInfor"></span>条记录 当前第<span id="spanPageNum"></span>页 共<span id="spanTotalPage"></span>页</div>
<div class="gridItem" style=" border-style: none; border-color: inherit; border-width: 0; padding: 5px; width: 225px; float: right; text-align: center; height: 20px; vertical-align: middle; font-size: 15px;"> <span id="spanFirst" ><img src='img/first.png'/></span> <span id="spanPre"><img src='img/back.png'/></span><span id="spanInput" style="margin: 0px; padding: 0px 0px 4px 0px; height:100%; "> 第<input id="Text1" type="text" class="TextBox" onkeyup="x()" style="height:20px; text-align: center" />页 </span><span id="spanNext"><img src='img/front.png'/></span> <span id="spanLast"><img src='img/last.png'/></span>
</div>
</div>
<script type="text/javascript">
var theTable = document.getElementById("gvSell");
var txtValue = document.getElementById("Text1").value;
function y() {
theTable = document.getElementById("gvSell");
txtValue = document.getElementById("Text1").value;
renovate();
}
function x() {
var txtValue2 = document.getElementById("Text1").value;
if (txtValue != txtValue2) {
if (txtValue2 > pageCount()) { }
else if (txtValue2 <= 0) { }
else if (txtValue2 == 1) {
first(); }
else if (txtValue2 == pageCount()) {
last(); }
else {
hideTable();
page = txtValue2;
pageNum2.value = page; currentRow = pageSize * page;
maxRow = currentRow - pageSize;
if (currentRow > numberRowsInTable) currentRow = numberRowsInTable;
for (var i = maxRow; i < currentRow; i++) {
theTable.rows[i].style.display = '';
}
if (maxRow == 0) { preText(); firstText(); }
showPage();
nextLink();
lastLink();
preLink();
firstLink();
} txtValue = txtValue2;
}
}
function renovate() {
numberRowsInTable = theTable.rows.length - 1; //table值发生变化 更新分页
for (var i = pageSize + 1; i < numberRowsInTable + 1; i++) {
theTable.rows[i].style.display = 'none';
}
for (var j = 0; j <= 5; j++) {
if (j > numberRowsInTable)
break;
theTable.rows[j].style.display = '';
}
inforCount(); totalPage.innerHTML = pageCount();
showPage();
pageNum2.value = page; if (pageCount() > 1) {
nextLink();
lastLink();
}
}
</script>
<script type="text/javascript" src="Pagging.js"></script>
</form>
</body>
</html>
相关js代码:
var totalPage = document.getElementById("spanTotalPage");
var pageNum = document.getElementById("spanPageNum");
var totalInfor = document.getElementById("spanTotalInfor");
var pageNum2 = document.getElementById("Text1");
var spanPre = document.getElementById("spanPre");
var spanNext = document.getElementById("spanNext");
var spanFirst = document.getElementById("spanFirst");
var spanLast = document.getElementById("spanLast");
var pageSize = 5;
var numberRowsInTable = theTable.rows.length-1;
var page = 1;
//下一页
function next() {
if (pageCount() <= 1) {
}
else {
hideTable();
currentRow = pageSize * page + 1;
maxRow = currentRow + pageSize;
if (maxRow > numberRowsInTable) maxRow = numberRowsInTable+1;
for (var i = currentRow; i < maxRow; i++) {
theTable.rows[i].style.display = '';
}
page++;
pageNum2.value = page;
if (maxRow == numberRowsInTable) { nextText(); lastText(); }
showPage();
if (page == pageCount()) {
nextText();
lastText();
}
preLink();
firstLink();
}
}
//上一页
function pre() {
if (pageCount() <= 1) {
}
else {
hideTable();
page--;
pageNum2.value = page;
currentRow = pageSize * page + 1;
maxRow = currentRow - pageSize;
if (currentRow > numberRowsInTable) currentRow = numberRowsInTable;
for (var i = maxRow; i < currentRow; i++) {
theTable.rows[i].style.display = '';
}
if (maxRow == 0) { preText(); firstText(); }
showPage();
if (page == 1) {
firstText();
preText();
}
nextLink();
lastLink();
}
}
//第一页
function first() {
if (pageCount() <= 1) {
}
else {
hideTable();
page = 1;
pageNum2.value = page;
for (var i = 1; i < pageSize+1; i++) {
theTable.rows[i].style.display = '';
}
showPage();
firstText();
preText();
nextLink();
lastLink();
}
}
//最后一页
function last() {
if (pageCount() <= 1) {
}
else {
hideTable();
page = pageCount();
pageNum2.value = page;
currentRow = pageSize * (page - 1)+1;
for (var i = currentRow; i < numberRowsInTable+1; i++) {
theTable.rows[i].style.display = '';
}
showPage();
lastText();
nextText();
preLink();
firstLink();
}
}
function hideTable() {
for (var i = 0; i < numberRowsInTable+1; i++) {
theTable.rows[i].style.display = 'none';
}
theTable.rows[0].style.display = '';
}
function showPage() {
pageNum.innerHTML = page;
}
function inforCount() {
spanTotalInfor.innerHTML = numberRowsInTable;
}
//总共页数
function pageCount() {
var count = 0;
if (numberRowsInTable % pageSize != 0) count = 1;
return parseInt(numberRowsInTable / pageSize) + count;
}
//显示链接
function preLink() { spanPre.innerHTML = "<a href='javascript:pre();'><img src='../Images/Common/back.png'/></a>"; }
function preText() { spanPre.innerHTML = "<img src='../Images/Common/back.png'/>"; }
function nextLink() { spanNext.innerHTML = "<a href='javascript:next();'><img src='../Images/Common/front.png'/></a>"; }
function nextText() { spanNext.innerHTML = "<img src='../Images/Common/front.png'/>"; }
function firstLink() { spanFirst.innerHTML = "<a href='javascript:first();'><img src='../Images/Common/first.png'/></a>"; }
function firstText() { spanFirst.innerHTML = "<img src='../Images/Common/first.png'/>"; }
function lastLink() { spanLast.innerHTML = "<a href='javascript:last();'><img src='../Images/Common/last.png'/></a>"; }
function lastText() { spanLast.innerHTML = "<img src='../Images/Common/last.png'/>"; }
//隐藏表格
function hide() {
for (var i = pageSize + 1; i < numberRowsInTable+1 ; i++) {
theTable.rows[i].style.display = 'none';
}
theTable.rows[0].style.display = '';
inforCount();
totalPage.innerHTML = pageCount();
showPage();
pageNum2.value = page;
if (pageCount() > 1) {
nextLink();
lastLink();
}
}
function renovate() {
numberRowsInTable = theTable.rows.length - 1; //table值发生变化 更新分页
for (var i = pageSize + 1; i < numberRowsInTable + 1; i++) {
theTable.rows[i].style.display = 'none';
}
for (var j = 0; j <= 5;j++ ){
if(j>numberRowsInTable)
break;
theTable.rows[j].style.display = '';
}
inforCount();
totalPage.innerHTML = pageCount();
showPage();
pageNum2.value = page;
if (pageCount() > 1) {
nextLink();
lastLink();
}
}
hide();
asp.net下用js实现弹出子窗口选定值并返回的更多相关文章
- WPF FileFolderDialog 和弹出子窗口的一些问题
摘要:本文主要是WPF中 FileFolderDialog的相关问题,补充了关于在父窗口弹出子窗口,以及子窗口的相关属性(Data Binding)和命令绑定(Delegate Command)问题, ...
- pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例 脚本专栏 python 1. 用qt designer编写主窗体,窗体类型是MainWindow,空白窗口上一个按钮.并转换成mai ...
- JS设置弹出小窗口。
经常上网的朋友可能会到过这样一些网站,一进入首页立刻会弹出一个窗口,或者按一个连接或按钮弹出,通常在这个窗口里会显示一些注意事项.版权信息.警告.欢迎光顾之类的话或者作者想要特别提示的信息.其实制作这 ...
- fancybox 关闭弹出窗口 parent.$.fancybox.close(); 无反应 fancybox 关闭弹出窗口父页面自动刷新,弹出子窗口前后事件
当我们在父页面使用 fancybox 弹出窗口后,如果想自己手动关闭,则可以 function Cancel() { parent.$.fancybox.close(); } 如果关闭没有反应,最好看 ...
- 黄聪:TinyMCE 4 增强 添加样式、按钮、字体、下拉菜单和弹出式窗口
我最喜欢 WordPress 3.9 的更新是使用了 TinyMCE 4.0 编辑器.新的 TinyMCE 看起来看起来更整洁(真正匹配WP仪表板),它有一些非常不错的附加功能.我的很多老主题和插件必 ...
- JS弹出子窗口
目的 在一个主窗口中,点击一个链接, 弹出一个子窗口 , 父窗口保留 在子窗口中点击关闭, 关闭子窗口. 子窗口的位置位于屏幕的中间 实现 main.html <!DOCTYPE html> ...
- DevExpress第三方控件使用实例之ASPxPopupControl弹出子窗体
弹出页面控件:ASPxPopupControl, <dxpc:ASPxPopupControl ID="popubCtr" runat="server" ...
- js自定义弹出框
js自定义弹出框: 代码如下 <html> <head><title>自定义弹出对话框</title> <style type ="te ...
- [转]js来弹出窗口的详细说明
1.警告对话框 <script> alert("警告文字") </script> 2.确认对话框 <script> confirm(" ...
随机推荐
- FLASH ROM与EEPROM的区别
EEPROM,虽然也叫“非易失性数据存储器”,但它不能直接参与ALU运算,只是用于掉电不丢失的数据存储. EEPROM和片内RAM 类似,也属于数据存储器,它的特点是数据掉电可保持,而程序存储器一般指 ...
- 【组队赛三】-C cf448B
Suffix Structures Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit S ...
- sql substring charindex
substring(s1,int,int) 截取字符串,起始位置,截取个数,返回截取后的字符串 charindex(s1,s2)查找字符s1在s2中的位置.返回int位置 SELECT substri ...
- 【Maven】Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
1.到 http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html 下载你所需要的oraclejar包 2.在 ...
- BZOJ AC300题留念
- python 正则表达式汇总
一. 正则表达式基础 1.1.概念介绍 正则表达式是用于处理字符串的强大工具,它并不是Python的一部分. 其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同. 它拥 ...
- linux stat系统调用,获取文件信息。
stat 函数原型: int stat(const char *path, struct stat *buf); struct stat 说明 struct stat { mode_t st_mode ...
- 【Unity 3D】学习笔记四十:射线
射线 射线,类比的理解就是游戏中的子弹.是在3D世界里中一个点向一个方向发射的一条无终点的线.在发射的过程中,一旦与其它对象发生碰撞,就停止发射. 射线的原理 创建一个射线时,首先须要知道射线的起点和 ...
- 侧滑UI
1.视图 activity_main.xml <com.zyhui.cehua.SlidingMenu xmlns:android="http://schemas.android.co ...
- Hibernate 一对一关联映射
package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity publ ...