| 

.NET C# Java Javascript Exception

5
Hallo zusammen,

ich habe in einer Gridview in einer Templatespalte einen Button je Zeile angelegt.
Dieser soll durch Bedingungen unterschiedlich angezeigt werden.
Das funktioniert auch. Ich habe auch einen Eventhandler hinzugefügt, allerdings wird der nie ausgeführt.

Ich habe hier mal meinen code beigefügt.

PageLoad
protected void Page_Load(object sender, EventArgs e, GridViewRowEventArgs d)
{
GridViewMaus.GridView_RowDataBound(sender, d);
DynamicButton(d);
}


Button Erstellen
private void DynamicButton(GridViewRowEventArgs e)
{
Button btn_Doku = new Button();
//Text für Button festlegen
btn_Doku.Text = "Doku aufrufen";
// Name des Buttons festlegen
btn_Doku.ID = "btn_Doku";
//Ereignis zuordnen
btn_Doku.Click += new EventHandler(this.btn_Doku_Click);
if (e.Row.Cells[8].Text == "" | e.Row.Cells[8].Text == null | e.Row.Cells[8].Text == " ")
{
btn_Doku.Enabled = false;
btn_Doku.Text = "Doku fehlt";
}
else
{
btn_Doku.BackColor = System.Drawing.Color.LightBlue;
btn_Doku.Text = "Doku aufrufen";
}
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[7].Controls.Add(btn_Doku);
}
}


void btn_Doku_Click(object sender, EventArgs e)
{

//ausgewählte Zeile des Gridviews auslese
GridViewRow t = (GridViewRow)(sender as Control).NamingContainer;
// String der Ausfalldoku zusammenstellen
string vNotesLink = t.Cells[8].Text;
// externes Programm Notes mit Link-ID starten
System.Diagnostics.Process.Start(vNotesLink);

}
18.10.2011
kleinerkutz 31 3
2 Antworten
0
Moin,
ich glaube nicht dass man auf diese Art den Zellen Controls hinzufügen kann. Der Event wird wahrscheinlich vom DataGridView "abgesaugt" und kommt nicht bei dem Button an.
In der MSDN gibt es ein kurzes Tutorial, wie man es machen kann.
Gruß
Daniel
18.10.2011
puls200 3,8k 7
0
Moin,

ich verwende allerdings ein GridView, kein DataGrid.
Muss ich das komplette GridView dann manuell erstellen um die Controls
nutzbar zu machen ?

Gruß

Kleinerkutz
18.10.2011
kleinerkutz 31 3
Ich glaube nicht dass daran ein Weg vorbeiführt. Die Beschränktheit des GridView/Control ist auch ein Grund dafür, weshalb es so viele 3rd Party Controls für diesen Zweck gibt.
puls200 18.10.2011

Stelle deine Button-Frage jetzt!