Frage

Ich habe einen Linkbutton, der in einem Datenraster verschachtelt ist, die in einer Datenliste verschachtelt ist (ja, sehr seltsam, aber leider ist es der Teil der Website, die ich nicht ändern kann). Im Grunde möchte ich den Linkbutton einen Event-Handler feuern, die Response.Redirect (e.CommandArgument)) aufruft. Mit anderen Worten, ich habe bereits die URL, dass ich, umgeleitet werden soll, aber ich kann nicht herausfinden, wie das Ereignis-Trigger zu erhalten, wenn ich auf dem Linkbutton klicken.

Ich habe versucht, den Linkbutton OnClick Ereignisse verwenden und die ItemCommand Ereignisse für das Datagrid, aber ich glaube nicht, dass ich sie richtig bin registrieren.

Hier ist der HTML-Code für die Kontrollen.

<asp:DataList ID="dlstC" BorderWidth="0px" BorderStyle="None" CellPadding="2" CellSpacing="0"
runat="server">
<ItemTemplate>
    <table cellpadding="0" cellspacing="0">
        <tr style="padding-bottom: 4px">
            <td style="height: 20px">
                <asp:Label runat="server" ID="lblCertNum" Text='<%# "20" + (CStr(Container.DataItem("QuoteID").ToString) + "-" + CStr(Container.DataItem("QuoteRef").ToString)) %>'
                    Font-Bold="True" Font-Size="8pt"></asp:Label></td>
        </tr>
        <tr>
            <td>
                <asp:DataGrid ID="dgd_Certs" runat="server" ShowHeader="False" AutoGenerateColumns="False"
                    DataSource='<%# GetCert(CInt(Container.DataItem("QuoteRef"))) %>' BorderStyle="None"
                    BorderWidth="0" BorderColor="#ffffff" CellPadding="4" CellSpacing="0" OnItemCommand="DataGrid_EditItem">
                    <Columns>
                        <asp:TemplateColumn>
                            <ItemTemplate>
                                <asp:LinkButton ID="hlnCert" runat="server" Text='<%# Container.DataItem("CertName").ToString  %>' CommandName="RedirectToCert"
                                    CommandArgument='<%# BuildURLToCert(CInt(Container.DataItem("QuoteRef"))) %>' ToolTip="Click to view/edit certificate" ></asp:LinkButton>
                            </ItemTemplate>
                        </asp:TemplateColumn>
                        <asp:TemplateColumn>
                            <ItemTemplate>
                                <asp:Label ID="lblDate" runat="server" Text='<%# "Created - " + CStr(Container.DataItem("DateCreated").ToString)%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateColumn>
                    </Columns>
                </asp:DataGrid>
            </td>
        </tr>
    </table>
</ItemTemplate>

Und in der Code-behind Ich habe

    Public Sub DataGrid_EditItem(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)

    If e.CommandName = "RedirectToCert" Then

        Response.Redirect(e.CommandArgument.ToString)

    End If

End Sub

Dies ist mein letzter Versuch, wo ich versuche, die Datagrids ItemCommand Feuer zu erhalten, wenn der Client auf dem Link klickt, aber es ist zur Zeit nicht arbeiten.

Ist dies nicht möglich, ist es ein einfacher Weg, um den Client auf die richtige Seite zu umleiten, wenn sie auf dem Linkbutton klicken? Ich versuchte, die OnPostBackURL verwenden, aber das Problem ist, dass es Objekte, die Notwendigkeit, über diese tun sie nicht getragen werden scheinen zu sein, wenn ich dies tun oder wenn ich nur einen Hyperlink mit NavigateUrl Satz.

Vielen Dank im Voraus für jede Hilfe, hat dies hat mich für 2 Tage gerade stapfte.

War es hilfreich?

Lösung

ich es nie geschafft, den Event-Handler zu Feuer, um aus der Linkbutton, aber ich habe mit einer Arbeit kommen um für das ursprüngliche Problem, Variablen von einer Seite zur anderen weitergegeben haben. Ich habe einen Hyperlink anstelle eines Linkbutton verwendet, und die Query-Strings zu Bezugszahlen für die Objekte passieren, dass ich auf der neuen Seite zugreifen müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top