(e.Item.ItemType == ListItemType.Item | e.Item.ItemType == ListItemType.AlternatingItem)のショートカット

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

  •  05-07-2019
  •  | 
  •  

質問

ASP.NetでDataGridを使用する場合、実際にはショートカットメソッドはありません

(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem) 

基本的に、" itemはヘッダー、フッター、セパレーターではないアイテムです。

見つけることができませんでしたが、見つからないかどうかを確認するためにStackOverflowに配置すると思いました。

役に立ちましたか?

解決

このための独自の拡張メソッドを作成できます:

using System.Web.UI.WebControls;

public static class UiControlsHelper
{
    public static bool IsItem(this DataGridItem item)
    {
        return item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem;
    }
}

その後、次のように使用できます:

e.Item.IsItem();

GridViewの場合も同じです:

public static bool IsDataRow(this GridViewRow row)
{
    return row.RowType == DataControlRowType.DataRow;
}

他のヒント

Sagi 1つに回答 私の質問 s。

  

交換できます:

if (e.Item.ItemType != ListItemType.Item && e.Item.ItemType...
     

with

if (e.Item.DataItem != null) ...

私の答えではなく、彼の答え。私はそれをテストしていません。次のことがわからない:

  • 有効
  • 文書化
  • サポート
  • .NETフレームワークの将来のバージョンで変更される可能性があります

DataItemが割り当てられているが、有効なアイテムではない状況がよくあります。テスト、賛成票、反対票、コメントのために他の人に任せます。

ショートカットではありませんが、それを関数にカプセル化すると、コードがはるかに読みやすくなります。

拡張メソッドmethinksを作成するのに便利な場所になります。 。 。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top