首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>NET专区>.NET2.0>实例解决GridView中弹出对话框并改变GridView相应行的控件值为返回值
实例解决GridView中弹出对话框并改变GridView相应行的控件值为返回值
来源: 发布时间:2008-04-07 发布人: 浏览: 人次   字体: [ ]  

在工作中遇到如下问题:
  Gridview中有一文本框,一按钮,要求点击按钮弹出一网页对话框,在对话框关闭的时候,将返回值填充到相应行的文本框中去,找了很多资料,问题终于得以解决。
预备知识:
一 、如何弹出网页对话框,并返回值
语法:vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])

1.假设sURL 是jump.aspx,在弹出的窗口jump.aspx的html代码中可以用window.returnValue返回值给当
前窗口。
2.vArguments是当前窗口传给弹出窗口的变量,假如要把当前窗口的一个textbox里的值传给弹出窗口
jump.aspx可以这样:
<script language=javascript>
        var strSendValue=objForm.sendValue.value;
        window.showModalDialog(jump.aspx,strSendValue,"dialogHeight:300px;
dialogLeft:200px;");
    </script>
    <form id="objForm">
        <input type="text" id="sendValue" value="Jane">
        ......
    </form>
 
在jump.aspx页面的html代码中这样接受传来的值:
    <script language=javascript>
        var strReceiveValue=window.dialogArguments;
        ......
    </script>
vArguments可以是一个textbox,label……里的值,也可以是一个变量,甚至可以是一个对象,比如窗口
的句柄等,如:
    window.showModalDialog(jump.aspx,window,"dialogHeight:300px; dialogLeft:200px;");
即把当前窗口的句柄(指针)传给了jump.aspx,然后,可以在jump.aspx的script里访问其父窗口的里的
内容:
    var objParentForm=window.dialogArguments;
    var strValue=objParentForm.objForm.sendValue.value;
    对于有Tab控件的页面来说,这个功能可以帮助弹出窗口找到其父窗口。因为在有Tab控件的Form里弹
出窗口用parent属性只能导航到Tab所在的页面,而不能获得Tab选项卡里的子页面的句柄,用上述方法可
以把Tab选项卡里的子页面的句柄直接传给弹出窗口,就可以访问其父窗口了!
 
二、如何在JAVASCRIPT中查找 内容页中的控件
  可以采取表达式: <%= 控件Id.ClientID%>
    例如 : var txt=document.getElementById("<%= txt.ClientID %>");
 
三、如何在JAVASCRIPT中控制GridView中的控件
  GridView控件在浏览器上的解析结果实际上是 table,因此就可以像操作 table那样操作GridView
   以下做了一些简单的测试
  
<%@ Page Language="C#" MasterPageFile="~/Qtemp/MasterPage.master" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Qtemp_Default2" Title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script language="javascript" type="text/javascript">
    function change()
    {
        var txt=document.getElementById("<%= txt.ClientID %>");
        txt.value="jvajva";
    }
   
    document.write("<%=gv.ClientID %>");
   
    function tst()
    {
        var grid=document.getElementById("<%=gv.ClientID %>");
        for(var i=0;i<grid.rows.length;i++)
        {
            var txts=grid.rows[i].getElementsByTagName("input");
            for(var j=0;j<txts.length;j++)
            {
                if(txts[j].type=="text" && txts[j].id.indexOf("txt")>-1)
                {
                    txts[j].value=i;
                }            }        }    }
   
     function getRowValue(chk)
     {  
        var tblRow = chk.parentNode.parentNode;
        return tblRow.cells[1].innerHTML + ", " + tblRow.cells[2].innerHTML;
     }
    
     function selectValue(link)
     {
        var tmp=window.showModalDialog("dialog.aspx","","dialogHeight:100px;dialogWidth:200px;center=yes;help=no;status=no");
       
        var tblRow=link.parentNode;
        //alert(tblRow);
        var txts=tblRow.getElementsByTagName("input");
        for(var j=0;j<txts.length;j++)
            {
                if(txts[j].type=="text" && txts[j].id.indexOf("txt")>-1)
                {
                    txts[j].value=tmp;
                }            }     }
</script>
    <asp:TextBox ID="txt" runat="server"></asp:TextBox>
    <asp:Button ID="Button1" runat="server" OnClientClick="change()"
        Text="Button" />
       
    <asp:GridView ID="gv" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
        <Columns>
            <asp:BoundField DataField="CityName" HeaderText="CityName" SortExpression="CityName" />
            <asp:BoundField DataField="CityDescription" HeaderText="CityDescription" SortExpression="CityDescription" />
            <asp:BoundField DataField="CityId" HeaderText="CityId" SortExpression="CityId" />
            <asp:TemplateField HeaderText="te">
                <ItemTemplate>
                    <asp:TextBox ID="txt" runat="server" Width="120px"></asp:TextBox>
                    <a href="#" id="link" onclick="selectValue(this)">选择</a>
                    <input id="chk" type="checkbox" onclick="if(this.checked) alert(getRowValue(this))" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
</asp:GridView>   
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAllCities"
        TypeName="BusinessLayer.CityManager"></asp:ObjectDataSource>
    <input id="Button2" type="button" value="button" onclick="tst()"/><br />
    <br />
</asp:Content>

相 关 文 章   发布商链接
·Net2.0中使用母版页及其母版页的控件
·为GridView控件添加分页导航条形式代...
·GridView中固定列的两种方法
·DataView对象获取数据行相应列值的两...
·VS2005利用TreeView控件和递归函数动...
·GridView通过模板列实现第一列显示出...
·asp.NET 2.0中引发CSS失效问题原因和...
·如何让GridView控件支持导出Excel和W...
·在GridView里面添加CheckBox控件,并...
·asp.net中GridView绑定数据时Fromat...
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解在.net2.0中对config
·包含32种常见的用户输入验证...
·asp.net不使用服务器控件的情
·如何更改单个aspx页面的编码...
·实例讲解如何设置gridview的...
·asp.NET 2.0中引发CSS失效问...
·GridView通过模板列实现第一...
·VS2005利用TreeView控件和递...
·DataView对象获取数据行相应...
·GridView中固定列的两种方法
·为GridView控件添加分页导航...
·Net2.0中使用母版页及其母版...
·Gridview控件字段内容过长的...
·图解ASP.NET下AJAX安装(VS20...
·重写GridView实现单击行变色...
热 门 文 章
·asp.net(C#)弹出窗口返回值并...
·VS2005利用Excel组件操作Exce...
·AJAX实现无刷新适时显示gridV...
·gridview表头固定并实现打印...
·Js获取radiobuttonlist选中值...
·gridview绑定数据显示的各种...
·ASP.NET中“无法加载 DLL 找...
·asp.net2.0回发或回调参数无...
·asp.net文件下载防止乱码出现...
·实现gridview内容打印功能的...
·图解ASP.NET下AJAX安装(VS20...
·ASP.NET多个用户控件回车提交...
·gridview空数据源时仍显示表...
·asp.net中GridView每个单元格...
·Asp.net页面传递参数的几种方...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .