2017-12-27 31 views
0

私はListViewを持っています。これは、ユーザーが特定のニュース記事にしたすべてのコメントを表示します。ログインしたユーザーがコメントを作成した場合にのみ、削除ボタンを表示するにはどうすればいいですか?

コメントを作成したユーザーも削除できるようにするため、コメントボタンの近くに削除ボタンが表示されている必要があります。

サーバタグに<%= ... %>を使用してvisibleプロパティを設定できないことを考慮して、どのようにすればよいですか?

私はすべてのListViewアイテムを繰り返し処理し、必要に応じてボタンを追加しましたが、あまりにも手間がかかり、より良い方法があると思います。

ありがとうございます!

+0

はあなたがビューでコードを示すことができ、あなたの 'ListView'の' ItemTemplate'にvisibleプロパティを設定することができるはずです? –

+0

あなたは正しい道にいると思います。あなたは各行OnRowDataBound(または同様の、私は正確にイベントを忘れる)を通過する必要があります、行のユーザーIDとcurrユーザーを比較し、ボタンを表示/非表示します。 – wazz

答えて

0

ListView ItemDataBoundイベントで可視性ロジックを実装してみてください。

マークアップ:

<asp:ListView ID="lv" OnItemDataBound="ItemDataBound" /> 

コードの背後にある:

protected void ItemDataBound(object sender, ListViewItemEventArgs e) 
{ 
    if (e.Item.ItemType == ListViewItemType.DataItem) 
    { 
     var deleteButton = (Button)e.Item.FindControl("DeleteButtonID"); 

     YourDataSource yourDataSource = e.Item.DataItem as YourDataSource; 
     deleteButton.Visible = yourDataSource.CanDelete; 
    } 
} 
関連する問題