繁体   English   中英

如何在RowCommand事件中获取GridView的LinkBut​​ton前景色?

[英]How to get GridView's LinkButton ForeColor in RowCommand Event?

我有一个带有以下各列的GridView。

 <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>

在这种情况下,我需要在GridView的RowCommand事件中获取LinkBut​​ton的ForeColor。 基于ForeColor,我正在进行一些验证。

我这样尝试过

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

但是我已经在命令参数中指定了ItemName和IssueQty。 因此它引发了异常。 如何找到LinkBut​​ton的ForeColor?

这将为您提供帮助。 请看看。

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

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

        string text = lstText.ForeColor.ToString();

看一眼:

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

如果索引超出范围,则可能在此处:

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

我建议使用断点/写线,以查看您使用什么数字作为索引。 e.CommandArgument可能不是解析行索引所要执行的操作。

很简单!!!

<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> 

现在在Command事件上,只需编写

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

完成了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM