帮忙解决一下这个JS问题!!!

vinjuviva 2009-09-25 03:39:40
datalist取出10条记录,我想第一个div(top1)默认显示,自己改了一个ondatabinding的事件好像不能执行,应该怎么改啊???

<script language="javascript" id="Script1">
<!--
var number=10;
function LMYC() {
var lbmc;
for (i=1;i<=number;i++) {
lbmc = eval('top' + i);
lbmc.style.display = 'none';
}
}

function ShowFLT(i) {
lbmc = eval('top' + i);
if (lbmc.style.display == 'none') {
LMYC();
lbmc.style.display = '';
}
else {
lbmc.style.display = 'none';
}
}
function Showone(i) {
lbmc = eval('top' + i);
if (lbmc == 'top1') {
lbmc.style.display = '';
}
}
//--></script>

 <asp:DataList ID="DataList13" runat="server">
<ItemTemplate>
<a title='<%# Eval("title") %>' onmouseover="javascript:ShowFLT(<%# Container.ItemIndex + 1%>)"><%# Eval("title") %>></a>
<div id="<%#"top"+ (Container.ItemIndex + 1)%>" style="display:none" ondatabinding="javascript:Showone(<%# Container.ItemIndex + 1%>)">
<a href='<%#"commodities.aspx?iid="+ Eval("iid")+"&nick="+Eval("nick").ToString() %>' target="_blank" title='<%# Eval("title") %>'><img src='<%# Eval("picurl") %>' alt='<%# Eval("title") %>' class="infodivimg"/></a>
<div class="tradename">商品名称:<br />
<a href='<%#"commodities.aspx?iid="+ Eval("iid")+"&nick="+Eval("nick").ToString() %>' target="_blank" title='<%# Eval("title") %>'><%# Eval("title") %></a></div>
<span class="price"><%# Eval("price") %>元</span>
<div class="infolink"> <a href='<%#"commodities.aspx?iid="+ Eval("iid")+"&nick="+Eval("nick").ToString() %>' target="_blank" title="查看详情">查看详情<img src="./images/hotinfo.jpg" alt="查看详情" width="11px" height="12px;"/></a></div>
</div>
</ItemTemplate>
</asp:DataList>
...全文
149 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
vinjuviva 2009-09-28
  • 打赏
  • 举报
回复
对啊,我一开始就隐藏所有层,只想显示第一个层!鼠标滑过显示改层收起其他层,现在页面执行就把所有层都隐藏了,我想通过判断把第一个层显示出来作为默认层!
li1229363 2009-09-28
  • 打赏
  • 举报
回复
你把默认的div的style属性中的display设置为空。其他的把display谁知为none

style="dispkay:none;"


默认可以省略掉这个
li1229363 2009-09-28
  • 打赏
  • 举报
回复

function show_hide_title(a,b,c,d,e,f,g)
{
/*
a当前鼠标滑过层的ID前缀
b当前鼠标滑过层的样式,class名
c与当前鼠标滑过层关联的层。
d与当前鼠标滑过层关联的层的样式,class名
e当前ID,数字,
f鼠标滑过层以外的层样式
g鼠标滑过层以外的层相关联的层的样式
*/
for(var i=0;i<9;i++)
{
if(document.getElementById(a+i))
document.getElementById(a+i).className = f;
if(document.getElementById(c+i))
document.getElementById(c+i).className = g;

}
if(document.getElementById(a+e)) document.getElementById(a+e).className = b;
if(document.getElementById(c+e)) document.getElementById(c+e).className = d;
}

li1229363 2009-09-28
  • 打赏
  • 举报
回复
你有多个层,想先隐藏几个,然后把第一作为默认显示的内容?是不是这样呢?
vinjuviva 2009-09-28
  • 打赏
  • 举报
回复
谁能帮帮我!!!
vinjuviva 2009-09-28
  • 打赏
  • 举报
回复
其实我们都想多了,只DATALIST结束标记后加一段超简单的JS解决了!!!不过十分感谢truelove12的悉心解答!

<script type="text/javascript" language="JavaScript">
var lbmc;
lbmc = eval('top1');
lbmc.style.display = '';
</script>

vinjuviva 2009-09-28
  • 打赏
  • 举报
回复
div层加上 runat="server"后ID不能动态赋值了!!怎么解决?????
vinjuviva 2009-09-28
  • 打赏
  • 举报
回复
truelove12:请问执行到“(e.Item.FindControl("dsitem") as System.Web.UI.HtmlControls.HtmlContainerControl).Style.Add(HtmlTextWriterStyle.Display, "none");”
错误提示:“未将对象引用设置到对象的实例”
我的DIV ID 是变量,比如:ID=TOP1...TOP10;
  • 打赏
  • 举报
回复
可以不使用js

<asp:DataList ID="ds" runat="server" onitemdatabound="ds_ItemDataBound">
<ItemTemplate>
<div id="dsitem" runat="server">
<%# Container.DataItem as string %>
</div>
</ItemTemplate>
</asp:DataList>



protected void Page_Load(object sender, EventArgs e)
{
List<string> values = new List<string>();
values.Add("asp.net");
values.Add("vb.net");
values.Add("c++");
ds.DataSource = values;
ds.DataBind();
}

protected void ds_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (e.Item.ItemIndex == 0)
{
(e.Item.FindControl("dsitem") as System.Web.UI.HtmlControls.HtmlContainerControl).Style.Add(HtmlTextWriterStyle.Display, "none");
}
}
}
sinbasara 2009-09-25
  • 打赏
  • 举报
回复
BD
vinjuviva 2009-09-25
  • 打赏
  • 举报
回复
没人知道吗???
vinjuviva 2009-09-25
  • 打赏
  • 举报
回复
没人知道吗????
vinjuviva 2009-09-25
  • 打赏
  • 举报
回复
我的触发事件是onmouseover,3楼的不可以啊!!
friendly_ 2009-09-25
  • 打赏
  • 举报
回复

function LMYC() {
var lbmc;
for (i=1;i<=number;i++) {
lbmc = eval('top' + i);
lbmc.style.display =(i==1)?'': 'none';
}
}

vinjuviva 2009-09-25
  • 打赏
  • 举报
回复
谁能帮帮我??
renzaijiang 2009-09-25
  • 打赏
  • 举报
回复
服务器控件可以js控制吗 我不知道啊

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧