Comment obtenir le prévision de boutons de lien GridView link dans l'événement RowCommand?

StackOverflow https://stackoverflow.com/questions/9512936

Question

J'ai une grille de grille avec les colonnes suivantes.

 <Columns>
     <asp:TemplateField HeaderText="Item Description">
     <ItemTemplate>
     <asp:Label ID="lblgvItemName" runat="server" Text='<%# Bind("ItemName") %>'></asp:Label>
     </ItemTemplate>
     </asp:TemplateField>
    <asp:BoundField DataField="IssueQty" HeaderText="Issue Qty" />
    <asp:TemplateField>
    <ItemTemplate>
       <asp:LinkButton ID="lnkReturn" runat="server" CommandName="Return" CommandArgument='<%# Eval("ItemName") + "," + Eval("IssueQty") + %>' Text="Return" Font-Bold="true" ForeColor="Red">
       </asp:LinkButton>
    </ItemTemplate>
 </Columns>

Dans ce cas, j'ai besoin de l'obtention du préviseur de la liaison Linkbutton dans l'événement RowCommand de la GridView.Basé sur le prévisor, je fais une certaine validation.

J'ai essayé comme ça,

 string Color = ((LinkButton)gvRIVDetails.Rows[Convert.ToInt32(e.CommandArgument.ToString()].FindControl("lnkReturn")).ForeColor;

Mais j'ai déjà spécifié itemName et émetty dans l'argument de commande.Donc, il jette l'exception. Comment trouver le prévisor de la liaison Linkbutton?

Était-ce utile?

La solution

This will help you. Please take look.

            GridViewRow row = (GridViewRow)((Control)e.CommandSource).NamingContainer;

        LinkButton lstText = (LinkButton)row.FindControl("lnkReturn");

        string text = lstText.ForeColor.ToString();

Autres conseils

Take a look at:

string Color = (LinkButton) gvRIVDetails.Rows[Convert.ToInt32(e.CommandArgument.ToString()].FindControl("lnkReturn")).ForeColor;

If you are getting index out of range, chances are that it is here:

[Convert.ToInt32(e.CommandArgument.ToString())]

I'd suggest a breakpoint/writeline to see what number you are using as your index. e.CommandArgument might not be what you want to do to parse your row index.

Very Simple!!!

<asp:TemplateField> 
<ItemTemplate> 
   <asp:LinkButton ID="lnkReturn" runat="server" CommandName="Return" CommandArgument='<%# Eval("ItemName") + "," + Eval("IssueQty") + %>' Text="Return" Font-Bold="true" ForeColor="Red" oncommand="FunctionABC"> 
   </asp:LinkButton> 
</ItemTemplate> 

Now on Command event just write

LinkButton lb=sender as LinkButton;
lb.ForeColor="Violet";    

and It's done.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top