ASP.net 点击表格弹出窗口

为表格中的对应行/单元格添加属性("onclick"事件及弹窗函数)

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //循环每列 判断需要添加打开新窗体脚本的列 如果改行任意位置都能打开新窗体 则 直接执行if内代码  将cell改为e.Row
            foreach (TableCell cell in e.Row.Cells)
            {
                if (e.Row.Cells.GetCellIndex(cell) != 0 && e.Row.Cells.GetCellIndex(cell) != 10 && e.Row.Cells.GetCellIndex(cell) != 11)
                {
                    //模版列 要获取到空间的值 如果是BoundFiled 直接去Text值即可
                    //Label lblId = (Label)e.Row.Cells[0].FindControl("LabVisible");            
                    Session["lblId"] = e.Row.Cells[0].Text;
                    //Response.Write(Session["lblId"]);
                    //弹出新窗体 
                    e.Row.Attributes.Add("onclick", "window.open('../StaffResume/people_windows_open.aspx?','','width=800,height=529,scrollbars=0')");
            //e.Row.Attributes.Add("onclick", "window.showModalDialog('../new_test/newtest_update.aspx?','','dialogWidth=1300px;dialogHeight=500px')"); } }
//鼠标以上的样式 e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#c8c7c6'"); e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c;"); //鼠标样式 e.Row.Style.Add("cursor", "hand"); } }
window.open弹窗可兼容谷歌浏览器和IE浏览器,
window.showModalDialog只兼容IE浏览器
在aspx文件中直接绑定控件弹窗
<asp:Button runat="server" Text="导入用户" class="btn btn-secondary" ID="ImportUsers" OnClientClick="openWin('/Account/UsersInfoImport.aspx')" />

设置弹窗位置居中,通过JS代码实现

    <script type="text/javascript">
        function openWin(url) {
            var iWidth = 1000;
            var iHeight = 500;
            //获得窗口的垂直位置 
            var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
            //获得窗口的水平位置 
            var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
            var win = window.open(url, '导入用户', 'height=' + iHeight + ',innerHeight=' + iHeight + ',width=' + iWidth + ',innerWidth=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=0,titlebar=no');
            win.document.getElementById(user).innerHTML = "dsfghj";
            return win;
        }
    </script>

cs文件中调用JS代码-必须有return

    protected void GridView1_DataBound(object sender, EventArgs e)
    {
        foreach (GridViewRow row in GridView1.Rows)
        {
            row.Attributes.Add("onclick", "return openWin('/Account/UserInfoConfig.aspx')");
        }
    }


参考资料:
https://www.runoob.com/jsref/met-win-open.html
https://blog.csdn.net/bobwu/article/details/7474703
https://blog.csdn.net/wyply115/article/details/51645822
posted @ 2021-11-16 16:47  *雷子*  阅读(274)  评论(0编辑  收藏  举报