【问题标题】:How to get GridView's LinkButton ForeColor in RowCommand Event?如何在 RowCommand 事件中获取 GridView 的 LinkBut​​ton ForeColor?
【发布时间】:2012-03-01 08:33:34
【问题描述】:

我有一个包含以下列的 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。基于前景色,我正在做一些验证。

我试过这样,

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

但我已经在命令参数中指定了 ItemName 和 IssueQty。所以它抛出异常。 如何找到 LinkBut​​ton 的前景色?

【问题讨论】:

  • 它抛出以下异常:“索引超出范围。必须为非负数且小于集合的大小。参数名称:索引”

标签: c# asp.net gridview rowcommand


【解决方案1】:

这将对您有所帮助。请看一下。

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

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

        string text = lstText.ForeColor.ToString();

【讨论】:

    【解决方案2】:

    看看:

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

    如果你的索引超出范围,很可能是它在这里:

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

    我建议使用断点/写行来查看您将哪个数字用作索引。 e.CommandArgument 可能不是您想要解析行索引的方法。

    【讨论】:

      【解决方案3】:

      非常简单!!!

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

      现在在命令事件上写

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

      完成了。

      【讨论】:

        猜你喜欢
        • 2017-09-03
        • 2012-04-02
        • 2012-10-19
        • 1970-01-01
        • 2023-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多