0
私は自分のコンポーネントをtreeviewメニューに持っています。このようなHTML構造を生成したいと思います。ここでDotVVMコードのコンポーネントは正しくHTML構造を生成しません
<a href>
<span class="something">
<i class="icon"></i>
</span>
</a>
私の見解でレンダリングされていない、私は私のメニューのための構造を生成どこ
public void DataBindItem(DotvvmControl parent, AdminMenuListDTO item, IDotvvmRequestContext context)
{
var li = new HtmlGenericControl("li");
if (item.HasCategories)
{
//holder pro ikonu (šipku ukazující možnost rozbalení menu)
var iClassContainer = new HtmlGenericControl("span");
iClassContainer.Attributes.Add("class", "pull-right-container");
//ikona pro šipku ukazující možnost rozbalení menu
var iClass = new HtmlGenericControl("i");
iClass.Attributes.Add("class", "fa fa-angle-left pull-right");
li.Attributes.Add("class", "treeview expandable");
if (!string.IsNullOrEmpty(item.Name))
{
var ahref = new HtmlGenericControl("a");
ahref.InnerText = item.Name;
ahref.Attributes.Add("class", "tree-toggler nav-header");
ahref.Attributes.Add("id", item.Id.ToString());
// add <a href> to <li>
li.Children.Add(ahref);
// add <span> container to <a href>
ahref.Children.Add(iClassContainer);
// add <i class> to <span> which contains icon
iClassContainer.Children.Add(iClass);
}
var childContainer = new HtmlGenericControl("ul");
childContainer.Attributes.Add("class", "nav nav-list tree");
childContainer.Attributes.Add("style", "display:none;");
foreach (var child in item.AssignedToMenuItem)
{
DataBindItem(childContainer, child, context);
}
li.Children.Add(childContainer);
}
else
{
li.Attributes.Add("style", "treeview");
if (item.RouteName != null)
{
var routeLink = new RouteLink();
routeLink.RouteName = item.RouteName;
routeLink.Text = item.Name;
routeLink.Attributes.Add("class", "js_isRoute_" + item.Id.ToString());
routeLink.Attributes.Add("id", item.Id.ToString());
li.Children.Add(routeLink);
}
}
parent.Children.Add(li);
}
問題は、私の全体の構造である私のコードですが、私はこれだけを参照してください。私の<a href>
タグには、span
とi
も含まれている必要があります。
マイstructreが正しくレンダリングされたが、対中デバッグモードで私のコンポーネントで、私はそれが正しく生成参照されていません。私は間違っている?
正確に。 'InnerText'を設定する代わりに' '要素に' Literal'を追加し、 'Text'プロパティを設定してください。 –