1

グリッドビューには、各行のハイパーリンクを含む TemplateField があります。

<asp:TemplateField>
    <HeaderStyle CssClass="gridHeader" HorizontalAlign="center"  ForeColor="White" BackColor="Gray" VerticalAlign="Middle" />
    <ItemStyle CssClass="gridItem" />
    <ItemTemplate>
        <asp:HyperLink id="hyplnkAuditTrail" runat="server" href="##">Audit Trail</asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

および背後にあるコード:

Protected Sub gvHotelMarkup_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvHotelMarkup.RowDataBound
    Try
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim hlnkAuditTrail As HyperLink = e.Row.FindControl("hyplnkAuditTrail")
            hlnkAuditTrail.Attributes.Add("onclick", "audittrail(" & e.Row.DataItem("HotelId") & "," & ddlGS.SelectedValue & ");")

        End If

    Catch ex As Exception
        lblErrMessage.Message = ex.Message()
    End Try
End Sub

そしてjavascriptリンク

<script type ="text/javascript" language="javascript" >
    function audittrail(HotelId,Source)
{   var strUrl = "frmGDSAuditTrail.aspx?HotelId=" + HotelId+"&Provider=" + Source;
    var width = 700;
    var height = 300;
    var left = (screen.width/2)-(width/2);
    var top = (screen.height/2)-(height);
    window.open(strUrl,null,
                            'width='+ width +','+
                            'height='+ height+','+
                            'top=' + top +',' +
                            'left=' + left + ',' +
                            'status=yes,' + 
                            'toolbar=no,' + 
                            'menubar=yes,' + 
                            'location=no,' + 
                            'scrollbars=yes,' + 
                            'resizable=yes'
                            );
}

しかし、リンクをクリックしても、新しいページは表示されません。

ブレークポイントを使用しましたが、ハイパーリンクの属性は問題なく境界付けられました。

4

1 に答える 1

0

この行を変更します:

hlnkAuditTrail.Attributes.Add("onclick", "audittrail(" & e.Row.DataItem("HotelId") & "," & ddlGS.SelectedValue & ");")

これに:

hlnkAuditTrail.Attributes.Add("onclick", "audittrail(" & e.Row.DataItem("HotelId") & ",'" & ddlGS.SelectedValue & "');")

私のために働いた。

HotelId は整数であるため、追加の " ' " は必要ありません。しかし、ddlGS.SelectedValue は文字列です。したがって、「 ' 」で囲む必要があります。

于 2013-08-30T02:55:51.757 に答える