gridview点击某一行弹出fancybox

我想实现A.aspx上点击gridview中的某一行任何一个位置,或者单独设置一列弄个详细。点击后使用fancybox的形式弹出B.aspx
B.aspx中根据ID查找出具体的详细信息,怎么实现??

我现在定义了这个js


/*fancybox弹出层*/
$(document).ready(function () {
    $(".fb").fancybox({
        'width': 600,
        'height': 380,
        'autoScale': false,
        'transitionIn': 'none',
        'transitionOut': 'none',
        'type': 'iframe',
        'href': 'B.aspx',
        'onClosed': function() { 
            window.location.href='A.aspx';
        }
    });
});

好像怎么搞都不行,我现在只能添加一个选定内容的列,选择该行后在SelectedIndexChanging里面添加加载css的,并设置session.然后点击改行通过session在pageload的时候加载详细信息。这样要点两下才能出来。

    protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //首先判断是否是数据行
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //鼠标移动到某行上,该行变色
            e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#CCCCFC'");
            //鼠标移开后,恢复
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
            //定义css弹出fancybox
            //e.Row.CssClass = "fb";
            //点击后,实现该行的选中                                                 
            //e.Row.Attributes.Add("onclick", "__doPostBack('gv1','Select$" + e.Row.RowIndex + "')");
        }
    }

    protected void gv1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
    {
        //this.btnyh.Text = this.gv1.Rows[e.NewSelectedIndex].Cells[4].Text.ToString().Trim();
        Session["id"] = this.gv1.Rows[e.NewSelectedIndex].Cells[5].Text.ToString().Trim();
        this.gv1.Rows[e.NewSelectedIndex].CssClass = "fb";
    }


请问要怎么做才能在gridview上点击某一行任何位置,或者点击“详细”就能弹出带有改行详细内容的fancybox,b.aspx

回答: gridview点击某一行弹出fancybox

  1. 刚刚没事看了一下Fancybox,呵呵,没想到是这么一个东西,趁有时间已经给你弄好了。
    上码了,全套

    <script type="text/javascript">
    $(document).ready(function(){
    $("#openUrl").fancybox({
    'width':'75%',
    'height':'75%',
    'autoScale':false,
    'transitionIn':'none',
    'transitionOut':'none',
    'type':'iframe'
    });
    });

    function showFancyBox(id) 
    {
    $("#openUrl").attr("href","b.aspx?id="+id); 
    $("#openUrl").click();
    }
    </script>

    这个隐藏的a标签,你放在body,随便什么地方,反正看不到。
    <a id="openUrl" href="#" style="display:none;"></a>


    后台cs

    protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //首先判断是否是数据行
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //鼠标移动到某行上,该行变色
            e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='#CCCCFC'");
            //鼠标移开后,恢复
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
             
            //就这儿了       
            e.Row.Attributes.Add("onclick", "showFancyBox("+((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString()+")");
        }
    }

ext可以实现点击父窗口弹出选择子窗口吗?

  1. Q
    请问ext可以实现点击父窗口弹出子窗口,在子窗口中选择后返回值给父窗口相应的文本框吗?
    问题补充:
    我的父窗口不是用ext生成的,只是普通的html,弹出的子窗口是ext生成的,如何返回值到父窗口指定的文本框?
    问题补充:
    我的子窗口是这样生成的,只是用了ext的window,其他都没用
    var win = new Ext.Window({
    title   : "选择 " + item_name,
    width   : 500,
    height   : 475,
    closable   : true,
    modal   : true,
    plain   : true,
    //maximizable : true,
    draggable   : false,
    html   : '<iframe  src="' + strWindowURL + '" width="100%" marginwidth="0" height="100%" marginheight="0" scrolling="no" frameborder="0"></iframe>'
    });

    win.show();
  2. A
    例如:
    父窗口里有一个文件框<input type='text' id='myTest' name='myTest' value=''/>
    在子窗口里用window.parent.document.getElementById("myTest").value = '测试值';
    赋值。
    注意:
    window不是你弹出的window组件对象,而是javascript里的window对象。

delphi 点击按钮时弹出对话框,选择路径,然后选择文件夹,然后选择指定文件,代码怎么实现

  1. Q
    delphi 点击按钮时弹出对话框,选择路径,然后选择文件夹,然后选择指定文件,代码怎么实现
  2. A
    楼上正解 不过存的是文件路径

类似于点击qq表情弹出一个html控件,然后将html文件中的信息写入html控件,并响应html控件中的消息

  1. Q
    类似于点击qq表情弹出一个html控件,然后将html文件中的信息写入html控件,并响应html控件中的消息。

    问题1.如何创建一个html控件。

    问题2.html控件创建成功后,如何将准备好的html文件信息写入html控件中
         (比如html文件中包含3个段落,第一个段落是图片,第二个段落是移动字幕,第三个段落是qq表情)

    问题3.如何响应写入3个段落的消息。


    本人新手,请各位大哥给小弟一些指点。ths!!
  2. A
    把它写入到一个html文件里,再用控件进行Navigate加载html文件

关于点击热区后弹出隐藏的DIV层

  1. Q
    我想实现点击一个热区然后会弹出自己想要显示的div层
  2. A
    这个通过CSS代码+Jscript来做更好。

    也可以在后台代码,设置这个Div的style属性,来隐藏和显示

    不知你解决了没有?

VC/MFC点击按钮并列弹出两个子窗口

  1. Q
    void CCARTransferDlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    ::SetWindowPos(this->m_hWnd,HWND_TOPMOST,10,10,10,10,SWP_NOMOVE|SWP_NOSIZE);//窗口最前端显示
    //::SetWindowPos(this->m_hWnd,HWND_NOTOPMOST,10,10,10,10,SWP_NOMOVE|SWP_NOSIZE);//取消最前端显示
    CCAR1 dlg1;
    dlg1.DoModal();
    CCAR2 dlg2;
    dlg2.DoModal();
    CCAR3 dlg3;
    dlg3.DoModal();
    CCAR4 dlg4;
    dlg4.DoModal();
    CCAR5 dlg5;
    dlg5.DoModal();
    CCAR6 dlg6;
    dlg6.DoModal();
    }
    点击按钮之后六个子窗口不是同时显示的  怎么能让其同时显示?????
  2. A
    你这得用非模态对话框吧,6个非模态对话框同时显示出来。


    非模态对话框的实现
                       新建一个基于对话框的应用程序Test,在资源视图中右键点击Dialog,在弹出菜单中选择“Inert Dialog”,然后根据类向导新建一个对话框相关的类dlg1,
       在CTestDlg类前面添加dg1的声明语句,如下所示:
       class dlg1;
       class CTestDlg : public CDialog
       {
       ..........
       然后在CTestDlg中添加一个变量:dlg1 *pdlg;并且在CTestDlg的构造函数中初始化为NULL,而且要在TestDlg.CPP的前面加上头文件#include"dlg1.h"
     
       然后添加主对话框确定按钮的消息映射,代码如下
    void CGeliangDlg::OnOK() 
    {
         // TODO: Add extra validation here
         if((pdlg!=NULL)&&::IsWindow(pdlg->m_hWnd))  //判断对话框是否已被创建
        {
             AfxMessageBox("对话框已经被创建");
             pdlg->ShowWindow(SW_SHOW);        //已被创建,直接显示
        }
       else
      {
           pdlg=new dlg1();                             //没有被创建,则创建对象
      }
      if(!::IsWindow(pdlg->m_hWnd))
     {
        pdlg->Create(IDD_DIALOG1,this);              //创建对话框
        pdlg->ShowWindow(SW_SHOW);              //显示对话框
     }
    // CDialog::OnOK();
    }
    在添加内存清理函数,
    在类视图中右击dlg1,选中Add Virtual Function,弹出New Virtual Overrride for class dlg1对话框,选择PostNcDestroy,单击AddHandler按钮,单击Edit Exiting按钮,编写代码如下:
    void dlg1::PostNcDestroy() 
    {
       // TODO: Add your specialized code here and/or call the base class
        delete this;
       // CDialog::PostNcDestroy();
    }
    至此已经完成了非模态对话框的显示与销毁了。

vc++mfc点击菜单,弹出的模态对话框中添加一串命令的问题

  1. Q
    问题是这样的,我之前做一款拼接软件,然后实现了点击菜单项,弹出模态对话框,往模态对话框的编辑控件输入命令(比如输入x=2,y=2,就会出现2行2列的窗口)现在是输入命令变成一个字符串,命令又改了,改成字符串了,之前输入的是x,y,现在x,y对应的命令为14 00 07 00 00  02 63 0X,14 00 07 00 00 02 64 0Y (十六进制数)其中这两串命令中的X,Y相当于输入的x,y.这个在原来基础上怎么改才能实现上述的那种功能?
  2. A
    "14 00 07 00 00 02 63 0X 这一串命令"
    是2进制命令,不是字符串.
    最后一个字节表示 x ?
    "63 0X         0x63=x ;   0X的 X(nib 半字节) 表示 x 的值.(0->15)
    "64 0Y"        0新4=y;   0Y的 Y(nib 半字节) 表示 y 的值.(0->15)

安装了 Embarcadero RAD Studio XE2,点击菜单弹出错误

  1. Q
    刚刚安装的Embarcadero RAD Studio XE2,在运行后,点击菜单时弹出错误:
    Access violation at address 500a4b38 in module ‘rtl160.bpl’. Read of address 00000005
    请问各位有没有遇到过此类问题,遇到的帮忙解决下
    操作系统为windows7旗舰版 32位的
  2. A
    delphi7中打开一个包含有第三方控件的窗口时候,抱错。导致窗口无法出现

想用VB播放SWF文件,并且播放后点击该SWF后可弹出一个网页,应该怎么实现?

  1. Q
    想要实现下述功能,看看哪位高手能帮我想想办法:
    1.启动一个程序,一个FORM全屏显示(没有CAPTION),上面显示一些文字
    2.用鼠标点击FORM,该FORM播放SWF文件,且也为全屏显示
    3.播放一段时间后,再次点击鼠标,弹出某一网页(例如百度),然后关闭这个程序
    现在主要问题在于播放器,如果用ShockwaveFlash来播放SWF,由于该控件没有CLICK事件,而我又必须要全屏播放SWF,所以就不能实现弹出网页了,不知哪位高手有办法解决?谢谢
  2. A
    flash视频上响应鼠标事件,需要得到flash视频的句柄:

    Public   hWndOfPlayVideo   As   Long     "视频播放窗口的句柄 

    '取得Flash.ocx控件视频播放窗口的句柄 
    Public   Function   EnumFlashChildProc(ByVal   lhWnd   As   Long,   ByVal   lParam   As   Long)   As   Long 
            Dim   RetVal   As   Long 
            Dim   WinClassBuf   As   String   *   255 
            Dim   WinClass   As   String 
            RetVal   =   GetClassName(lhWnd,   WinClassBuf,   255) 
            If   (InStr(WinClassBuf,   Chr(0))   >   0)   Then 
                    WinClass   =   Left(WinClassBuf,   InStr(WinClassBuf,   Chr(0))   -   1) 
            End   If 
            If   WinClass   =   "MacromediaFlashPlayerActiveX"   Then 
                  hWndOfPlayVideo   =   lhWnd 
                  EnumFlashChildProc=   False 
            Else 
                  If   Left(WinClass,   4)   =   "ATL:"   Then 
                        hWndOfPlayVideo   =   lhWnd 
                        EnumFlashChildProc=   False 
                  Else 
                          EnumFlashChildProc=   True 
                  End   If 
            End   If 
    End   Function 

js如何控制弹出层播放flv时,关闭层同时关闭flv的播放???

  1. Q
    点击图片,弹出div层,在层上嵌入了 flv播放代码播放flv文件。但是当我关闭层后,视频文件还在继续播放,只是页面上看不到了而已,再点击图片,打开层还在继续播放。

    如何在我关闭层的时候,暂停或者重新加载这个flv视频,使他变为从头开始待播放状态。这样我关闭层的时候,就听不到视频的播放声音了,再点击这个图片,弹出层后,视频是最初开始播放的状态。

    <a href="javascript:void(0)" onclick="showGreyBox('newDiv2');"><img src="/images/hy_005.jpg" /> </a>  '图片点击后弹出层。



    <div id="newDiv2" class="div_class1">
         <div class="div_header1">在线播放<a  href="javascript:closeDiv('newDiv2')">关闭</a></div>
         <div class="div_cont1"><br />
          <object id="cc_8EA83B64E371B267"  classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="820" height="430">
    <param name="movie" value="/flash/player.swf" />
    <param name="quality" value="high" />
    <param name="allowFullScreen" value="true" />
    <param name="FlashVars" value="vcastr_file=/flash/shipin4.flv" />
    <embed src="/flash/player.swf" allowfullscreen="true" flashvars="vcastr_file=/flash/shipin4.flv" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="820" height="430" name="cc_8EA83B64E371B267"></embed>
    </object> 
         </div>
    </div>




    <script language="JavaScript" type="text/javascript">
        function closeDiv() {
            document.getElementById("newDiv2").innerHTML = "";            
            document.getElementById("newDiv2").style.display = "none";
            document.getElementById("layer").style.display = "none";
        }
       
    </script>
  2. A
    如果硬要按照你得隐藏的方式来做的话,就要涉及到js与flash的通信了,也就是说你得flash文件得提供暂停的接口给js调用,但是有一个变通的方法,就是把div从文档中删除,remove掉,这样做可能你会觉得效率很低,但这是最简单的方法了

    我就是这么干的