Hi KF,
thanks for posting and sharing us the information.
I haven't an account on thet
www.experts-exchange.com/ so that I cannot see
that implementation. Here are some of my thoughts on this for your
information:
1. Use a TemplateField as an additional column in the GridView and put
Email TextBox and Button in that Templatefield's ItemTemplate. e.g.
===============
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="btnSendEmail" runat="server"
Text="SendTo: "
CommandName="Send" CommandArgument='<%#
((GridViewRow)Container).RowIndex %>' />
<asp:TextBox ID="txtEmail"
runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
===============
2. We need to set CommandName and CommandArgument properties for the Button
in template. So that we can reference it in the Gridview's RowCommand event
later. Register the "RowCommand" event of GridView.
3. Here we add the code in "Rowcommand" event. We first ensure that the
CommandName is "Send", and then, get RowIndex from CommandArgument.
And Find controls from the GridViewRow and do the email sending stuff ...
=====================
protected void GridView1_RowCommand(object sender,
GridViewCommandEventArgs e)
{
if(e.CommandName=="Send")
{
int rowindex = int.Parse(e.CommandArgument.ToString());
GridViewRow row = GridView1.Rows[rowindex];
Response.Write("<br/>Row: " + rowindex);
TextBox txt = row.FindControl("txtEmail") as TextBox;
Response.Write("<br/>Will send email to " + txt.Text);
}
}
============================
Hope this also helps.
Sincerely,
Steven Cheng
Microsoft MSDN Online Support Lead
Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
ms****@microsoft.com.
==================================================
Get notification to my posts through email? Please refer to
http://msdn.microsoft.com/subscripti...ult.aspx#notif
ications.
Note: The MSDN Managed Newsgroup support offering is for non-urgent issues
where an initial response from the community or a Microsoft Support
Engineer within 1 business day is acceptable. Please note that each follow
up response may take approximately 2 business days as the support
professional working with you may need further investigation to reach the
most efficient resolution. The offering is not appropriate for situations
that require urgent, real-time or phone-based interactions or complex
project analysis and dump analysis issues. Issues of this nature are best
handled working with a dedicated Microsoft Support Engineer by contacting
Microsoft Customer Support Services (CSS) at
http://msdn.microsoft.com/subscripti...t/default.aspx.
==================================================
This posting is provided "AS IS" with no warranties, and confers no rights.
--------------------
>From: "Ken Fine" <ke*****@newsgroup.nospam>
References: <5E**********************************@microsoft.co m>
Subject: solution Re: Gridview: embedding a texbox and button in each row,
passing info from that row to a function?
>Date: Tue, 8 Jul 2008 13:26:22 -0700
>
This question has been answered excellently, and with an example here:
http://www.experts-exchange.com/Prog...P.NET/Q_235480
35.html?cid=239
>
I'll mirror any further information you supply or EE supplies in both
places.
Thanks!
"Ken Fine" <ke*****@newsgroup.nospamwrote in message
news:5E**********************************@microso ft.com...
>I'm making an administrative interface that lists records in a GridView.
For *each* row in the gridview, I would there to be two interface
elements
>in addition to some information associated with the record. Those
interface elements are a Button and a TextBox. The idea is that the
administrator using the interface will fill in an e-mail address and
press
>the button if they want to send that particular record to someone by
e-mail. (I know how to manage all of the e-mailing stuff.)
I know how to do a variation of this using a commandname on a simple
link
>in a repeater, but I have never done this with a textbox.
I've made many interfaces similar to what's described above using
Classic
>ASP.
How would I do this in a GridView? I imagine I'd build it using an
ItemTemplate. But I'm fuzzy on how to make the UI elements repeatable,
how
>to determine which row has been invoked, and how to grab the necessary
information out of the dynamically rendered/named UI elements or
otherwise
>pass the necessary info to the function I build to invoke the e-mailing
functionality.
Thanks,
-KF