有没有办法让 aspx 页面的代码隐藏访问修改后的 html?
例如,我有一个空的 runat="server" 无序列表,在“queue.aspx”上看起来像这样
<ul runat="server" id="sortableQueue" class="sortable" >
</ul>
然后我使用代码隐藏“queue.aspx.cs”填充它
HtmlGenericControl li_item1 = new HtmlGenericControl("li");
li_item1.InnerText = "Shot Name - 1";
li_item1.Attributes["style"] = "cursor: move";
li_item1.Attributes["data-shotid"] = "1";
sortableQueue.Controls.Add(li_item1);
HtmlGenericControl li_item2 = new HtmlGenericControl("li");
li_item2.InnerText = "Shot Name - 2";
li_item2.Attributes["style"] = "cursor: move";
li_item2.Attributes["data-shotid"] = "2";
sortableQueue.Controls.Add(li_item2);
接下来,允许用户使用html5sortable对这些列表项进行重新排序。这工作正常,并修改页面的 html。
然后我尝试在“queue.aspx.cs”中读取更改后的html,以便将它们保存到数据库中。
protected void btnSaveQueue_Click(object sender, EventArgs e)
{
int count = sortableQueue.Controls.Count;
for (int p = 1; p <= count - 1; p++)
{
HtmlGenericControl li_item = (HtmlGenericControl)sortableQueue.Controls[p];
Response.Write(li_item.Attributes["data-shotid"]); //for testing purposes
}
}
不幸的是,这个函数读取 html 就像在 html5 重新排序之前一样。例如,如果我交换第 1 项和第 2 项的位置,我希望函数写“21”。
相反,它写入“12”,就好像没有修改任何内容一样。
无论如何,对问题的详细描述,但我愿意接受有关如何使我的方法起作用的任何建议,或者是实现可重新排序的拖放列表相同功能的替代方法。