当前位置:编程学习 > C#/ASP.NET >>

求教:通过点击GirdView控件中的超级链接HyperLinkField打开一个新的小窗口页面

各位老师,大家好:

我是一个刚刚使用ASP.NET,用C#进行网络开发的新手。

有问题向大家求教:

1、使用了GirdView控件,并在它的Columns中添加了一个超级链接HyperLinkField;
   当然,根据需要还添加了一些BoundField;

2、我希望:程序运行时,点击超级链接HyperLinkField,能弹出一个小窗口(即:原有页面保持,又弹出一个新页面),
   在小窗口中有相关的详细信息;

3、我看了一些资料,都是说:可以直接在HTML中添加一个超级链接,然后,使用window.open('*.aspx',width = heigh=)
   来实现;于是,我“照猫画虎”,用到GirdView控件的HyperLinkField中,
   即:HyperLinkField的DataNavigateUrlFormatString=window.open('*.aspx',width = heigh=);但---不行!!

请教各位老师:

我的思路有问题?错在什么地方?应该如何解决?

如何才能实现?

我只想通过点击GirdView控件中的超级链接HyperLinkField,来打开一个新的小窗口(页面)。

                                                                                      请指教,多谢!



--------------------编程问答--------------------   <asp:GridView ID="gvQuestionType" DataKeyNames="QuestionTypeID" Width="100%" AutoGenerateColumns="false"
                                        runat="server" BorderWidth="1px" BorderColor="#CECECE" onmouseover="changeto()"
                                        onmouseout="changeback()" OnRowDataBound="gvQuestionType_RowDataBound" OnRowCommand="gvQuestionType_RowCommand">
                                        <Columns>
                                        <asp:TemplateField HeaderText="分类名称" ItemStyle-BorderStyle="Solid">
                                                <ItemTemplate>
                                                <a id="aQuestionType" runat="server"><%#DataBinder.Eval(Container, "DataItem.QuestionTypeName")%></a>
                                                </ItemTemplate>
                                                <HeaderStyle Width="6%" BackColor="#EFFFF0" Font-Size="12px" BorderStyle="Solid" />
                                            </asp:TemplateField>
                                            <asp:BoundField DataField="SortNo" HeaderText="排序">
                                                <HeaderStyle BorderStyle="Solid" />
                                                <ItemStyle  BorderStyle="Solid" Width="12%" />
                                            </asp:BoundField>
                                            <asp:BoundField DataField="AddDate" HeaderText="创建日期">
                                                <HeaderStyle BorderStyle="Solid" />
                                                <ItemStyle  BorderStyle="Solid"  Width="12%" />
                                            </asp:BoundField>
                                            <asp:TemplateField HeaderText="编  辑" ItemStyle-BorderStyle="Solid">
                                                <ItemTemplate>
                                                    <div align="center" style="width: 100%">
                                                        <img src="../images/037.gif" width="9" height="9" />
                                                        <a href="#" id="aEdit" runat="server">编  辑</a>
                                                    </div>
                                                </ItemTemplate>
                                                <HeaderStyle Width="6%" BackColor="#EFFFF0" Font-Size="12px" BorderStyle="Solid" />
                                            </asp:TemplateField>
                                            <asp:TemplateField HeaderText="删  除" ItemStyle-BorderStyle="Solid">
                                                <ItemTemplate>
                                                    <div align="center" style="width: 100%;">
                                                        <img src="../images/010.gif" width="9" height="9" />
                                                        <asp:LinkButton ID="lkbQuestionType" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "QuestionTypeID", "{0}")%>'
                                                            CommandName="del" OnClientClick='return confirm("是否确定删除?")'>删除</asp:LinkButton>
                                                    </div>
                                                </ItemTemplate>
                                                <HeaderStyle Width="6%" BackColor="#EFFFF0" Font-Size="12px" BorderStyle="Solid" />
                                            </asp:TemplateField>
                                        </Columns>
                                        <HeaderStyle CssClass="ListHead" />
                                        <RowStyle CssClass="ListRow" />
                                    </asp:GridView>
后台:
   protected void gvQuestionType_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string strID = gvQuestionType.DataKeys[e.Row.RowIndex].Value.ToString();

                ((HtmlAnchor)e.Row.Cells[3].FindControl("aEdit")).Attributes.Add("onclick", "javascript:window.showModalDialog('AddQuestionType.aspx?id=" + strID + "&tempid=" + new Random().Next(1, 1000) + "',window,'dialogWidth=400px;dialogHeight=280px;status=0;scroll=no');");
                 }
    } --------------------编程问答-------------------- 弹出的新页面与超级链接有关系吗,需不需要参数传递? --------------------编程问答-------------------- 用jquery框架实现起来最简单,你先去下载一个jquery.js框架文件
然后在gridview里添加一个模板列,绑定你要链接的字段。

<asp:TemplateField HeaderText="链接">
 <ItemTemplate>
     <a href="#"><%# Eval("username") %></a></ItemTemplate>
 </asp:TemplateField>


然后在前台页面上编写代码:

   <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
  
  $(function(){
  $("a").click(function(){
  var username=$(this).text();
  alert(username);
  window.showModalDialog("verifyuser.aspx?username="+username, "newwindow", "height=100, width=400, toolbar =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no") 
  });
  });
    </script> 
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,