プログラムでReorderListのDragHandleTemplateにアクセスする方法はありますか(ASP.NET AJAX Control Toolkit)...特にReorderListのItemDataBound中に、アイテムごとのレベルで外観を変更するために?
Michael
質問する
1851 次
3 に答える
1
LINQ で FindControlRecursive を表現することもできます。
private Control FindControlRecursive(Control root, string id)
{
return root.ID == id
? root
: (root.Controls.Cast<Control>().Select(c => FindControlRecursive(c, id)))
.FirstOrDefault(t => t != null);
}
于 2011-04-29T17:40:01.673 に答える
1
残念ながら、ReorderListItem からドラッグ ホルダーを取得する方法はありません。代わりに、DragHandleTemplate (PlaceHolder など) 内にサーバー コントロールを作成し、ItemDataBound イベント ハンドラーでそれを見つけることができます。
aspx ファイル内:
<DragHandleTemplate>
<div class="dragHandle">
<asp:Label ID="lblDragHandle" runat="server" />
</div>
</DragHandleTemplate>
aspx.cs ファイル内:
protected void ReorderList1_ItemDataBound(object sender, AjaxControlToolkit.ReorderListItemEventArgs e)
{
Label lblDragHandle = (Label)FindControlRecursive(e.Item, "lblDragHandle");
lblDragHandle.Text = e.Item.ItemIndex.ToString();
}
private Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
Jeff のブログからFindControlRecursiveメソッドをコピーしました。
于 2009-02-02T10:12:51.857 に答える
0
サーバー上でプログラムによってDragHandleTemplate にアクセスすることはできませんが、(行ごとに) 一意の ID を持つ周囲の要素を作成すると、CSS セレクターまたは Javascript を使用して一部の項目のみを変更できるはずです。
于 2009-01-29T15:33:59.650 に答える