2012-03-01 14 views
0

私は以下の列を持つGridViewを持っています。その中RowCommandイベントでGridViewのLinkBut​​ton ForeColorを取得する方法は?

<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の検索方法は?

+0

例外はありますか? –

+0

次の例外がスローされます: "インデックスが範囲外です。負でなく、コレクションのサイズより小さい必要があります パラメータ名:index" – thevan

答えて

1

これはあなたを助けます。見てください。

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

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

     string text = lstText.ForeColor.ToString(); 
0

を見てみましょう:あなたは範囲外のインデックスを取得している場合は、チャンスはそれがここにあるということである

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

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

私が何を参照して、ブレークポイント/ WriteLineメソッドをお勧めしたいですあなたのインデックスとして使用している番号。 e.CommandArgumentは、行インデックスを解析するために実行しないことがあります。

0

非常に簡単!コマンドイベントで今すぐ

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

を書いて、それは行われています。

関連する問題