Frage

Ich verwende Visual Studio 2008 mit .NET Framework 3.5. Ich habe ein DataGrid mit einem Linkbutton in einer Templatecolumn. Ich versuche herauszufinden, wie Sie die Möglichkeit deaktivieren, auf den LinkButton zu klicken, sobald sie geklickt wurde. Mein DataGrid verfügt über 6 Spalten mit der Linkbutton-Spalte, die Jahre anzeigt, und die anderen, die Jahresendaten für diese Jahre angezeigt werden. Wenn ein Jahr angeklickt wird, zeigt das DataGrid eine Aufschlüsselung der jenen Jahresdaten an einem Monat monatlich. Wenn das DataGrid den Monat nach dem Monatspannen anzeigt, benötige ich immer noch die Spalte des Jahres, um sichtbar zu sein, aber ohne zu klicken. Ich habe auch eine Schaltfläche und ein Diagramm, das standardmäßig auf FALSE eingestellt ist. Nach einem Jahr wird jedoch die Sichtbarkeit auf TRUE mit der Taste gesetzt, wodurch die Fähigkeit ist, den Monat um den Monat auf dem Monat zu schließen und zum Jahr zurückzuschließen Beenden. Ich habe alles, was ich am Arbeitsplatz arbeitet, außer der Deaktivierung des Linkbuttons.

Hier ist der Code für meine Templatecolumn von DataGrid: generasacodicetagpre.

Ich habe Folgendes ausprobiert:

Versuch 1 Verwenden von Code hinter: generasacodicetagpre.

Versuch 2 mit Javascript verwenden: generasacodicetagpre.

- Der 3. Versuch war nahe, was grau aus den Link-Buttons ausgeführt wurde, aber die Fähigkeit, sie zu klicken, nicht deaktiviert VERSUCHEN 3 Verwenden der Eigenschaft 'aktiviert': generasacodicetagpre.

Einige andere Gedanken, die ich mit einem "OnClick-Event oder einem" Kommandargument "einbezieht. Ich habe versucht, "OnClick" und in den Code zu verwenden, der einfach verwendet wird: generasacodicetagpre.

Jede Hilfe, Gedanken, Ideen, Beispiele usw. wäre sehr geschätzt. Vielen Dank im Voraus!

Bereinigter Code: generasacodicetagpre.

War es hilfreich?

Lösung 2

Polity, thank you very much for your help, I really appreciate it. I found a different way to go about fixing this issue though.

.ASPX Code:

<TemplateColumn>
    <ItemTemplate>
        <asp:LinkButton runat="server" OnClick="test" Text='<%# DataBinder.Eval(Container, "DataItem.year") %></asp:LinkButton>
    </ItemTemplate>
</TemplateColumn>

.ASPX.CS Code:

protected void test(object sender, EventArgs e)
{
    foreach(var y in myDataGrid.Items)
    {
        LinkButton lb = ((y as TableRow).Cells[1].Controls[1] as LinkButton);
        lb.Enabled = false;
    }
}

Andere Tipps

Option 3 and your last approach seem to be the way to go. The problem with LinkButtons is that even by putting Enabled on false, you wont block them from posting back. See: http://weblogs.asp.net/jeffwids/archive/2011/02/14/how-to-disable-an-asp-net-linkbutton-when-clicked.aspx

Therefore you have to do this manually with:

lb.Attributes.Add("onclick", "this.href='#';this.disabled=true;" + Page.ClientScript.GetPostBackEventReference(lb, "").ToString());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top