现在我有一个dropDownList,它是一个" Select"使用"选项"进行HTML控制元素并且已经是runat =" server",这里是代码:
<select name="webmenu" id="webmenu" class="fWidth" runat="server">
<option value="calendar" data-image="TempImages/AldiBl.png">Aldi</option>
<option value="shopping_cart" data-image="TempImages/Norma.png">Norma</option>
<option value="cd" data-image="TempImages/AldiBl.png">Aldi</option>
<option value="email" selected="selected" title="TempImages/AldiBl.png">Aldi</option>
<option value="fam" data-image="TempImages/AldiBl.png">Aldi</option>
<option value="games" data-image="TempImages/AldiBl.png">Aldi</option>
</select>
&#13;
带有元素的列表我可以从后面的代码访问,但我的问题是我需要添加元素,上面的只是一个例子,这样做我有一个javascript函数添加元素,在这里它是:
function showAccounts(names, images) {
var namesArray = names.split(",");
var imagArray = images.split(",");
for (var ro = 0; ro < namesArray.length; ro++) {
$('#menuName').append($("<option value='" + namesArray[ro] + "' data-image='" + imagArray[ro] + "'>" + namesArray[ro] + "</option>"));
}
return false;
}
&#13;
元素很好地添加和显示但是当从后面的代码访问时,它们不存在于我可以理解的列表中,因为它们是在客户端创建的,所以这是我的问题,如何将带有图像的元素添加到我的& #34;选择&#34;代码背后的元素,所以我可以从后面的代码访问它们?
非常感谢提前。
答案 0 :(得分:1)
试试这个:
private ListItem CreateListItem(string value, string text, string dataImage) {
ListItem li = new ListItem() { Value = value, Text = text };
li.Attributes["data-image"] = dataImage;
return li;
}
protected void Page_Load(object sender, EventArgs e) {
List<ListItem> lis = new List<ListItem>();
lis.Add(CreateListItem("test1", "blah1", "test.png"));
lis.Add(CreateListItem("test2", "blah2", "test2.png"));
lis.Add(CreateListItem("test3", "blah3", "test3.png"));
if (!IsPostBack) {
foreach (ListItem li in lis)
webmenu.Items.Add(li);
}
else {
// persist custom attributes
for (int i = 0; i < webmenu.Items.Count; i++)
webmenu.Items[i].Attributes["data-image"] = lis[i].Attributes["data-image"];
}
}
在回发后,您可以使用webmenu.SelectedItem.Value和webmenu.SelectedItem.Attributes [“data-image”]
检索值