2010-12-17 16 views
1
 
i am working on visual stdio 2008 and my database is in sql server 2005 
MY table has three columns 
1. SenderName 
2. RecieverName 
3. Message 

i have displayed this table in GridView and add a button named as Reply 
so my grid view look's some what like this 

SenderName|RecieverName| MessAge|REPLY BUTTON 

now this what i want to do 
when Button is Clicked in My gridView i need to get data of that specific row 
i.e Sender's NAme so that i can Reply him/her ? 

can any one help???? 
+1

„Meine Tabelle hat zwei Spalten: 1 ... 2 ... 3 ... "=) Ich finde es einfach amüsant hehe – BeemerGuy

Antwort

2

Hier ist ein Beispiel:

Markup:

<asp:GridView 
    runat="server" 
    ID="gvEmails" 
    OnSelectedIndexChanged="gvEmails_SelectedIndexChanged">    
    <Columns> 
     <asp:ButtonField CommandName="Select" ButtonType="Button" Text="Send" /> 
    </Columns> 
</asp:GridView> 

-Code-behind:

protected void Page_Load(object sender, EventArgs e) 
{ 
    DataTable dt = new DataTable(); 
    dt.Columns.Add("SenderName"); 
    dt.Columns.Add("ReceiverName"); 
    dt.Columns.Add("Message"); 

    DataRow dr; 

    dr = dt.NewRow(); 
    dr["SenderName"] = "John Doe"; 
    dr["ReceiverName"] = "Jane Doe"; 
    dr["Message"] = "Hi, Jane."; 
    dt.Rows.Add(dr); 

    dr = dt.NewRow(); 
    dr["SenderName"] = "Michelle Smith"; 
    dr["ReceiverName"] = "Mike Smith"; 
    dr["Message"] = "Yo, Mike."; 
    dt.Rows.Add(dr); 

    gvEmails.DataSource = dt; 
    gvEmails.DataBind(); 
} 

protected void gvEmails_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    GridViewRow row = gvEmails.SelectedRow; 

    Response.Write("Send email to " + row.Cells[1].Text); 
} 
+0

Thanxx Bro Es hat wirklich geholfen –

+0

@ user404305 - kein Problem. Ich hoffe ich habe deinen Namen richtig geschrieben =) – BeemerGuy

0

Es gibt viele verschiedene Möglichkeiten, dies zu tun. Am einfachsten wäre es, wenn Sie nur einen einzelnen Wert benötigen, den Wert an das CommandArgument Ihrer Reply-Schaltfläche zu binden. Fügen Sie Ihrer Schaltfläche dann einen OnClick-Handler hinzu. Dann können Sie in der OnClick Methode den Namen von CommandArgument erhalten.

Wenn Sie mehr als einen Wert aus der Zeile benötigen, müssen Sie etwas mehr Arbeit erledigen. Sie können einen Ereignishandler in der GridView einrichten, um das Ereignis index changing zu erfassen. Dadurch werden einige Ereignisargumente mit einem NewSelectedIndex bereitgestellt. Dadurch erfahren Sie, welche Zeile ausgewählt wurde. Abhängig davon, wie Ihre Daten an Ihr GridView gebunden sind, können Sie erneut auf die Daten zugreifen, um die von Ihnen benötigten Werte zu erhalten, oder Sie können die Spalten in der GridView als DataKey festlegen und auf diese Weise zugreifen.

1

In den Eigenschaften gibt es eine ausgewählte Index-Funktion.

Den ausgewählten Index erfassen und den Zellenwert des ausgewählten Index abrufen.

Dann fahren Sie fort, was Sie wollen.

Verwandte Themen