ドロップダウン リストがあり、ドロップダウン リスト アイテムのツールチップを追加したいと考えています。次のコードを試してみましたが、うまくいきません。
for(int d=0;d<drpID.Items.Count;d++)
{
drpID.Items[d].Attributes.Add("title", drpID.Items[d].Value);
}
誰でもこれについて私を助けることができますか?
ドロップダウン リストがあり、ドロップダウン リスト アイテムのツールチップを追加したいと考えています。次のコードを試してみましたが、うまくいきません。
for(int d=0;d<drpID.Items.Count;d++)
{
drpID.Items[d].Attributes.Add("title", drpID.Items[d].Value);
}
誰でもこれについて私を助けることができますか?
これを試してみてください
protected void ddlDetails_DataBound(object sender, EventArgs e)
{
DropDownList ddl = sender as DropDownList;
if(ddl!=null)
{
foreach (ListItem li in ddl.Items)
{
li.Attributes["title"] = li.Text;
}
}
}
このスレッドがデータ バインドされたコントロールに関するものであることは知っていますが、aspx ページで実際に ListItem 値をハード コードしているまれなケースでは、単純に
<asp:ListItem Id="liNumberOne" Runat="server" title="My nifty help text" />
属性を ListItem タグ自体に追加すると、問題なく機能しました。確かに、それが有効な属性ではないという苦情がありましたが、ページがレンダリングされたときにそれが現れ、有効な属性でした.
プログラムで設定された DropDownList にツールチップを実装する必要がありました。title 属性が Text プロパティに自動的に設定されていて、PreRender でも上書きできないことがわかりました。
このスレッドの提案はどれも機能せず、最終的に jQuery アプローチを使用することを余儀なくされました。
リストアイテムを作成するときに、ツールチップテキストでカスタム属性を設定しました
ListItem item = new ListItem("Name", "Value");
item.Attributes.Add("tooltip", tooltip);
ddl.Items.Add(item);
次に、起動スクリプトで以下のメソッドを起動します
function SetTooltip() {
jQuery('#<%=ddl.ClientID %> option').each(
function () {
jQuery(this).attr('title', jQuery(this).attr('tooltip'));
}
);
}
かなりそうではありません。しかし、それは機能します。