【发布时间】:2013-06-04 07:59:47
【问题描述】:
我有一个列表,例如:
<ul id="list">
<li id="content_rptGalleryImages_galleryListItem_0" data-imageid="7" data-displayorder="0"></li>
<li id="content_rptGalleryImages_galleryListItem_1" data-imageid="5" data-displayorder="1"></li>
<li id="content_rptGalleryImages_galleryListItem_2" data-imageid="4" data-displayorder="2"></li>
</ul>
我希望能够访问每个列表项 data-imageid 和 data-displayorder 属性并将它们添加到我后面代码中的字典中,例如:-
Dictionary<int, int> dict = new Dictionary<int, int>();
foreach(var li in list.Controls)
{
//find li
dict.Add(li.Attribute["data-imageid"], li.Attribute["data-displayorder"]);
}
我想要实现的目标可能吗?如果没有,您能否提出一种替代方法?
根据要求编辑*中继器代码:
protected void rptGalleryImages_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
BrandImage image = (BrandImage)e.Item.DataItem;
HyperLink lnkGalleryImage = (HyperLink)e.Item.FindControl("lnkGalleryImage");
HyperLink lnkImageUrl = (HyperLink)e.Item.FindControl("lnkImageUrl");
LinkButton lnkBtnRemoveImg = (LinkButton)e.Item.FindControl("lnkBtnRemoveImg");
HtmlGenericControl galleryListItem = (HtmlGenericControl)e.Item.FindControl("galleryListItem");
lnkGalleryImage.Text = image.ImageLocation.Substring(image.ImageLocation.LastIndexOf("/")).Replace("/", "");
lnkGalleryImage.NavigateUrl = image.ImageLocation;
lnkImageUrl.Text = image.ImageUrl;
lnkImageUrl.NavigateUrl = image.ImageUrl;
lnkBtnRemoveImg.CommandArgument = image.ImageLocation;
galleryListItem.Attributes.Add("data-imageid", image.Id.ToString());
galleryListItem.Attributes.Add("data-displayorder", image.DisplayOrder.ToString());
}
}
谢谢
【问题讨论】:
-
thie
Dictionary<int, int> dict = new Dictionary<int, int>();是有效的 javascript 吗?在我看来像 java。 -
您的 LI 列表是否由您的渲染动态添加?还是它们是在客户端动态添加的?
-
@wagregg li 是通过转发器添加的,我在客户端用一些 jquery 重新排序这些 li
-
@DGibbs 那么这里的 jQuery 代码在哪里?
-
不确定您想要实现什么,但也许您可以在绑定转发器时构建您的字典并将字典存储在页面视图状态中(参见stackoverflow.com/q/6297073/1236044)