代码之家  ›  专栏  ›  技术社区  ›  Ken Ray

在onclientclick代码中包括eval/bind值

  •  7
  • Ken Ray  · 技术社区  · 17 年前

    我需要从GridView(与2005/2008相比)中打开一个弹出式详细信息窗口。我要做的是在我的templateColumn的标记中有一个asp:button控件,类似于:

    <asp:Button ID="btnShowDetails" runat="server" CausesValidation="false"
       CommandName="Details" Text="Order Details" 
       onClientClick="window.open('PubsOrderDetails.aspx?OrderId=<%# Eval("order_id") %>',
       '','scrollbars=yes,resizable=yes, width=350, height=550');"   
    

    当然,不起作用的是附加<%eval…%>节以设置查询字符串变量。

    有什么建议吗?还是有更好的方法来达到同样的结果?

    3 回复  |  直到 17 年前
        1
  •  13
  •   Tom Ritter    17 年前

    我相信这样做的方法是

    onClientClick=<%# string.Format("window.open('PubsOrderDetails.aspx?OrderId={0}',scrollbars=yes,resizable=yes, width=350, height=550);", Eval("order_id")) %>
    
        2
  •  2
  •   Community Mohan Dere    9 年前

    我喜欢@ AviewAnew 不过,您也可以通过将和事件连接到网格视图itemdatabound事件来从代码后面编写它。然后在事件参数上使用findcontrol方法,获取对按钮的引用,并设置 点击 属性设置为window.open语句。

        3
  •  2
  •   EndangeredMassa    17 年前

    在后面的代码中执行此操作。只需为GridView_RowDataBound使用事件处理程序。(我的示例使用ID为“gvbox”的网格视图。

    Private Sub gvBoxes_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvBoxes.RowDataBound
        Select Case e.Row.RowType
            Case DataControlRowType.DataRow
                Dim btn As Button = e.Row.FindControl("btnShowDetails")
                btn.OnClientClick = "window.open('PubsOrderDetails.aspx?OrderId=" & DataItem.Eval("OrderId") & "','','scrollbars=yes,resizable=yes, width=350, height=550');"
        End Select 
    End Sub
    
    推荐文章