我在asp:DataList中有一个div,其中包含一些其他div。我试图通过document.getElementByID("")
找到div。
它叫:Unable to get property 'style' of undefined or null reference.
因此,我了解.getElementById
无法找到它。
那怎么才能得到它们?
我试图通过旧帖子找到我的datalist,但没有一个与我的问题相符。
注意:我的divs
应该被拖动,而且它们会被拖动,但由于这个问题,我无法获得其职位的价值。
代码:
function FullDragging() {
// some code
var dd = document.getElementById("DesigningDiv"); // frame
var logoObject = document.getElementById("logoObject"); // draggable element
var nameObject = document.getElementById("nameObject"); // draggable element
function getDesigningDivSize() {
var dd = document.getElementById("DesigningDiv");
var aspDesigningDivHF = document.getElementById('<%=aspDesigningDivHF.ClientID %>'); // hidden-field which sends the changes in client-side to the server.
aspDesigningDivHF.value = parseInt(dd.style.width) + "," + parseInt(dd.style.height);
}
}
window.onload = FullDragging;
因为该函数被称为onload,错误也会出现onload。
HTML:
<asp:DataList ID="DataList1" runat="server" DataKeyField="ProductID" Height="400px" Width="1400px" OnEditCommand="DataList1_EditCommand" OnItemCommand="DataList1_ItemCommand" CellPadding="40" RepeatColumns="2" RepeatDirection="Horizontal" OnCancelCommand="DataList1_CancelCommand" OnItemDataBound="DataList1_ItemDataBound" OnUpdateCommand="DataList1_UpdateCommand">
<ItemTemplate> ... </ItemTemplate>
<EditItemTemplate>
<div id="DesigningDiv" style="height: 150px; width: 262.5px; border-style: groove; border-color: inherit; border-width: 1px; position: relative; height: 158px; width: 270px; background-color: #FFFFFF; visibility: hidden">
<div id="logoObject" style="width: 51px; top: 31px; position: absolute; height: 34px; font-family: 'times New Roman', Times, serif; font-size: xx-large; font-weight: bold; color: #333333; cursor: move; left: 187px;"> logo </div>
<div id="nameObject" style="width: 61px; top: 31px; position: absolute; height: 22px; font-family: 'times New Roman', Times, serif; color: #666666; font-size: large; cursor: move; font-weight: bold; left: 29px; bottom: 105px;"> full name </div>
</EditItemTemplate>
</asp:DataList>
答案 0 :(得分:0)
一些问题,您不应该使用静态ID填充项目模板,因为ID只应在html文档中出现一次。
考虑将一个类应用于这些div并以这种方式引用它们。
呈现页面后,右键单击并检查其中一个元素。 ASP可能会为您的ID添加一个额外的前缀,因为它是一个数据列表的一部分(例如,一旦页面加载,Visual Studio中的DivLabel1变为DataList1_DivLabel1)javascript不在这个转换中,所以你最好不要引用这些项目按班级