Elmo Watson
2008-02-05 01:36:10 AM

I've converted a buttonfield to a TemplateField with a button in it

Previously, in the Rowcommand, to identify the row when the ButtonField was
clicked, I had this code:

Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = MyGrid.Rows(index)

However, with the new TemplateField (with a button in the TemplateField), in
the RowCommand, it does not understand 'e.CommandArgument'

I get the error that the "input string was not in the correct format"

What am i missing here?


 

Re: ButtonField to TemplateField with Button

=?Utf-8?B?TWlsb3N6IFNrYWxlY2tpIFtNQ0FEXQ==?=
2008-02-05 08:43:00 AM

Hi Elmo,

ButtonField automatically puts the index to CommandArgument property of the
button. Now, because you changed it to TemplateField you are responsible for
binding the value manually yourself:

<asp:GridView runat="server" ID="MyGrid" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" ID="btn"
CommandName="MyCustomCommand"
CommandArgument='<%# Container.DataItemIndex
%>' Text="Click Me" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

And the vb.net code behind:

Protected Sub MyGrid_RowCommand(ByVal sender As Object, _
ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
Handles MyGrid.RowCommand

If e.CommandName = "MyCustomCommand" Then
Dim index As Integer = Convert.ToInt32(e.CommandArgument)
Dim row As GridViewRow = MyGrid.Rows(index)
End If

End Sub

Hope it helps
--
Milosz


"Elmo Watson" wrote:

>I've converted a buttonfield to a TemplateField with a button in it
>
>Previously, in the Rowcommand, to identify the row when the ButtonField was
>clicked, I had this code:
>
>Dim index As Integer = Convert.ToInt32(e.CommandArgument)
>Dim row As GridViewRow = MyGrid.Rows(index)
>
>However, with the new TemplateField (with a button in the TemplateField), in
>the RowCommand, it does not understand 'e.CommandArgument'
>
>I get the error that the "input string was not in the correct format"
>
>What am i missing here?
>
>
>
 



Re: ButtonField to TemplateField with Button

dbelogrlic
2008-02-08 05:02:00 AM

On Feb 5, 1:43 am, Milosz Skalecki [MCAD] <mily...@DONTLIKESPAMwp.pl>
wrote:
>Hi Elmo,
>
>ButtonField automatically puts the index to CommandArgument property of the
>button. Now, because you changed it to TemplateField you are responsible for
>binding the value manually yourself:
>
><asp:GridView runat="server" ID="MyGrid" AutoGenerateColumns="false">
><Columns>
><asp:TemplateField>
><ItemTemplate>
><asp:Button runat="server" ID="btn"
>CommandName="MyCustomCommand"
>CommandArgument='<%# Container.DataItemIndex
>%>' Text="Click Me" />
></ItemTemplate>
></asp:TemplateField>
></Columns>
></asp:GridView>
>
>And the vb.net code behind:
>
>Protected Sub MyGrid_RowCommand(ByVal sender As Object, _
>ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) _
>Handles MyGrid.RowCommand
>
>If e.CommandName = "MyCustomCommand" Then
>Dim index As Integer = Convert.ToInt32(e.CommandArgument)
>Dim row As GridViewRow = MyGrid.Rows(index)
>End If
>
>End Sub
>
>Hope it helps
>--
>Milosz
>
>"Elmo Watson" wrote:
>>I've converted a buttonfield to a TemplateField with a button in it
>
>>Previously, in the Rowcommand, to identify the row when the ButtonField was
>>clicked, I had this code:
>
>>Dim index As Integer = Convert.ToInt32(e.CommandArgument)
>>Dim row As GridViewRow = MyGrid.Rows(index)
>
>>However, with the new TemplateField (with a button in the TemplateField), in
>>the RowCommand, it does not understand 'e.CommandArgument'
>
>>I get the error that the "input string was not in the correct format"
>
>>What am i missing here?

Thank you,Milos ....You are MASTER