1

くだらない質問のタイトルでごめんなさい。これを1行で行う方法はありますか?

Button button = (Button)Gridview.Cells[0].FindControl("controlname");
button.Enabled = (some boolean);

たとえば、vbでのダイレクトキャストでは次のことが可能になります。

DirectCast(Gridview.Cells(0).FindControl("controlname"), Button).Enabled = (some boolean value)

それとも2行にする必要がありますか?

ありがとう!

4

2 に答える 2

13

あなたは明白なことを試みたと思いますが、優先順位を拘束することに巻き込まれました。メソッドとプロパティは、特に指定がない限り、キャストの前に実行されます。括弧を使用すると、最初にキャストを実行してから、キャストされたコントロールのプロパティを呼び出すことができます。

((Button)Gridview.Cells[0].FindControl("controlname")).Enabled = (some boolean);
于 2012-09-06T14:19:02.763 に答える
6

元の式を括弧で囲むだけです。

((Button)Gridview.Cells[0].FindControl("controlname")).Enabled = true;
于 2012-09-06T14:19:27.837 に答える