Die Antwort, die Sie suchen ist einfach und schwierig. Ich hatte dieses Problem auch in meinem Website-Projekt, also surfte ich seit Tagen im Internet und fand nicht, was ich und du gebraucht haben.
Ein Tag dachte ich nur über das Problem allein und Experimente stundenlang gemacht und stellte schließlich fest, dass die einzige einfache Möglichkeit, um die Säule zu wissen, dass die Schaltfläche geklickt wurde im RowCommand event
der GridView
im CommandName property
der GridViewCommandEventArgs
ist. Richtig wahrscheinlich und bequemer ist es, die Spalten GridView
im Design-Modus zu bearbeiten und Ihre Befehlsfelder durch Schaltflächenfelder zu ersetzen.
Sie können jede string/text
geben, die Sie wollen, um jedes Tastenfeld in seiner CommandName
, so in der RowCommand
Ereignis können Sie wissen, welche geklickt wurde. Button1
oder Button2
, aber Sie wollen nicht, diese Zeichenfolge geben, weil Sie etwas verlangen, dass die Tasten auswählen und Sie geben sollen, so die CommandName
das Wort wählen soll , aber es kann SELECT und wählen sie und wählen usw.
der Auswahlbefehl kann Erwähnung in der CommandName
in vielen Formen sein, und immer noch wird das System ihn erkennen.So zum Beispiel, wenn Sie zwei Knopf Felder im GridView
, deren ersten CommandName
einfach wählen und die anderen SELECT, dann, wenn einer von ihnen geklickt wird das RowCommand
Ereignis auslöst und
if (e.CommandName == "select")
{
Label1.Text = "You clicked first button";
}
else
{
Label1.Text = "You clicked second button";
}
und die SelectedDataKey
Ihres GridView
enthält die von Ihnen angeforderten Daten. Welche anderen in ihrer Antwort angeboten Menschen in CommandName
unterscheiden sich durch Taste ein bis select_one
Einstellung und Einstellung Taste zwei bis select_two
Sie, wenn entweder select_one
oder andere geklickt wurde helfen, zu wissen, aber die SelectedDataKey
Ihrer GridView
wird null
oder DataKey
Instanz bleiben, die doesn Sie enthalten keine Informationen, die Sie benötigen.
Mit anderen Worten, die Tasten werden keine notwendigen Informationen auswählen, so ist es sehr wichtig zu folgen meine Antwort. Es ist die exakte, perfekte und großartige Lösung für Ihr Problem!
Ich habe versucht, die CommandName-Eigenschaft und erhielt den folgenden Fehler: Typ 'System.Web.UI.WebControls.CommandField' hat keine öffentliche Eigenschaft mit dem Namen 'CommandName' –
Sie müssen es dynamisch erstellen, um dies zu tun. – Eric
schau dir die Antwort an, die ich oben gegeben habe. – Eric