我正在尝试使用javascript设置表格td元素的宽度。在函数外部设置时,宽度设置正确。当相同的代码被封装在一个函数中时,td元素的宽度保持不变。我插入了断点,代码似乎被触发了。谢谢你的帮助。
这是可行的:
document.getElementById("myTD").offsetWidth = document.getElementById('<%= ID=myGridView.ClientID %>').rows[0].cells[0].offsetWidth;这不会:
function myfunction() { document.getElementById("myTD").offsetWidth = document.getElementById('<%= ID=myGridView.ClientID %>').rows[0].cells[0].offsetWidth; };已成功从代码后台调用该函数
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(),
"myfunction",
"myfunction();",
true);
}发布于 2016-04-12 02:49:03
所以你已经让javascript被服务器调用了。最大的问题是脚本是什么时候执行的,你的原始脚本是什么时候执行的?我的猜测是,您的旧脚本是在页面加载之后执行的,所以引用的所有元素都存在,并且浏览器已经绘制了所有元素。
您的新脚本可能在内容完全加载之前运行,这意味着浏览器找不到引用的元素,因为它还没有加载,或者没有绘制任何内容,因此所有元素都没有宽度。
发布于 2016-04-12 20:39:25
我能够让它工作,但是TD元素比gridview元素稍微宽一些。我相信这与填充有关:
function MyFunction(){ document.getElementById("myTd").width = document.getElementById('<%= ID=myGridview.ClientID %>').rows[0].cells[0].offsetWidth; };https://stackoverflow.com/questions/36556610
复制相似问题