datalist 嵌套 datalist 的问题

asdfasdfdfas 2009-08-13 02:28:56
datalist 嵌套 datalist 运行后,在在第二级datalist 生成了这样一个ID值,
<table id="DataList1_ctl00_DataList2" ......>
<table id="DataList1_ctl01_DataList2" ......> .....


,请问这个ID值可以自定义的吗?我想在客户端用js执行一些操作,这种自动生成的ID值不太方便,大家有什么方法?
...全文
93 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
誰是方長 2009-10-15
  • 打赏
  • 举报
回复
其实很简单的,你应该就是看不懂DataSource='<%# GetDetails(Eval("PKID").ToString()) %>‘这段代码而已,后台很简单
public void types()
{
string Id = Request.QueryString["id"];
string sql = "select PKID,type from foodtype where SjId='" + Id + "'";
SqlCommand com = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(com);
DataSet ds = new DataSet();
da.Fill(ds);
datalist2.DataSource = ds.Tables[0].DefaultView;
datalist2.DataKeyField = "PKID";
datalist2.DataBind();
}

protected DataTable GetDetails(string PKID)
{
SqlDataAdapter da = new SqlDataAdapter("select PKID,Cy_Name, Age from Cp_Name where Cytype = @PKID", con);
da.SelectCommand.Parameters.AddWithValue("@PKID", PKID);
DataSet ds = new DataSet();
con.Open();
da.Fill(ds);
con.Close();
return ds.Tables[0];

}
jmxiaocai 2009-08-13
  • 打赏
  • 举报
回复
不懂
mangshuo 2009-08-13
  • 打赏
  • 举报
回复
ID固定好像是不行的!
你只有通过模糊的ID查询,他这个升成是有一定规律的。
dhtkhnt 2009-08-13
  • 打赏
  • 举报
回复
别用控件,直接Response.Write("<table></table>");
asdfasdfdfas 2009-08-13
  • 打赏
  • 举报
回复
简单地说,我就是想运行后,把datalist2生成的table的ID值都是统一的,这样可以吗?
jiaozi_200446 2009-08-13
  • 打赏
  • 举报
回复
你是不是 使用的master?
asdfasdfdfas 2009-08-13
  • 打赏
  • 举报
回复
有没有更简单的方法~
Aarom123 2009-08-13
  • 打赏
  • 举报
回复
你想把第二个datalist2里面生成两个table,但这两个table的ID改成一样?
不知道能不能改一样的ID。。你用JS取节点firstChild一直到你想找的东西。就可以更改他的属性。
你试试能不能改
asdfasdfdfas 2009-08-13
  • 打赏
  • 举报
回复
可不可以把datalist2生成的table都统一设置成一个ID?
asdfasdfdfas 2009-08-13
  • 打赏
  • 举报
回复
<asp:DataList ID="DataList1" runat="server" EnableViewState="False" RepeatColumns="4" RepeatDirection="Horizontal" Width="649px" OnItemDataBound="ItemDataBind" HorizontalAlign="Center">
<ItemTemplate>
<table width="120" border="0" cellspacing="2" cellpadding="0" >
<tr>
<td align="center" style="width: 123px">
<uc4:linkurl ID="PictureLink" runat="server" SetPageUrl="productDetail.aspx" SetLinkTitle='<%#Eval("picpath_s")%>' SetArrayNameLinkName="idno" SetArrayLinkVal='<%#Eval("idno") %>' SetLinkTextType="P" />
<asp:DataList ID="DataList2" runat="server" EnableViewState="false" CssClass="picboder">
<ItemTemplate>
<a href="#" onclick="window.open('cipianDetail.aspx?productid=<%#Eval("productid") %>','ShowWindow', 'toolbar=no, menubar=no, scrollbars=yes, resizable=yes,location=no, status=no')" ><img src="<%#Eval("picpath_s")%>" width="100" border="0" class="picboder" /></a>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
<tr>
<td height="30" align="center" style="width: 123px">
<uc4:linkurl ID="TextLink" runat="server" EnableViewState="false" SetPageUrl="productDetail.aspx" SetLinkTitle='<%#Eval("productid")%>' SetArrayNameLinkName="idno" SetArrayLinkVal='<%#Eval("idno") %>' SetLinkTextType="T"/>
<uc4:linkurl ID="TextLinkCipian" runat="server" EnableViewState="false" SetPageUrl="CipianDetail.aspx" SetLinkTitle='<%#Eval("productid")%>' SetArrayNameLinkName="productid" SetArrayLinkVal='<%#Eval("productid") %>' SetLinkTextType="T"/>
 
<asp:HiddenField ID="IsCipan" runat="server" EnableViewState="false" Value='<%#Eval("isCiPian") %>' />
<asp:HiddenField ID="productid" runat="server" EnableViewState="false" Value='<%#Eval("productid") %>' />
</td>
</tr>
</table>
</ItemTemplate>
<ItemStyle Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False"
Font-Underline="False" HorizontalAlign="Center" VerticalAlign="Top" />
</asp:DataList>

以上是aspx代码,

protected void ItemDataBind(object sender, DataListItemEventArgs e)
{
UserControl pictureLink = (UserControl)e.Item.FindControl("PictureLink");
UserControl TextLink = (UserControl)e.Item.FindControl("TextLink");
UserControl TextLinkCipian = (UserControl)e.Item.FindControl("TextLinkCipian");
DataList DataList2 = (DataList)e.Item.FindControl("DataList2");
HiddenField IsCipan = (HiddenField)e.Item.FindControl("IsCipan");
HiddenField productid = (HiddenField)e.Item.FindControl("productid");


if (IsCipan.Value.ToString() == "False")
{
DataList2.Enabled = false;
TextLinkCipian.Visible = false;
}
else
{
pictureLink.Visible = false;
TextLink.Visible = false;
string cipianSstr = "select * from cipian where idno in(select min(idno) from cipian where isdisplay=1 AND sortID < 5 and productid=@productid group by sortid ) order by sortid asc";
//Response.Write("select * from cipian where idno in(select min(idno) from cipian where isdisplay=1 AND sortID < 5 and productid='" + productid.Value.ToString() + "' group by sortid ) order by sortid asc <br >");
string[] sname = new string[] { "productid" };
string[] sval = new string[] { productid.Value.ToString() };
DbClass cipandb = new DbClass();
DataList2.DataSource = cipandb.ReturnParameterDataReader(cipianSstr, sname, sval);
DataList2.DataBind();
}
后台的代码

我想自己设置datalist2生成的table的ID 值,该如何操作?
seedling_lq 2009-08-13
  • 打赏
  • 举报
回复
这个命名规则是在datalist控件render时定义的,除非你更改datalist控件
至于自动生成的ID值不太方便,你可以通过tagname抓取元素,然后再判定id是否含有关键字的方法抓到元素
Aarom123 2009-08-13
  • 打赏
  • 举报
回复
你把问题再说清楚点。
Aarom123 2009-08-13
  • 打赏
  • 举报
回复
你上面这是两个table啊
asdfasdfdfas 2009-08-13
  • 打赏
  • 举报
回复
请问怎样定义?
Aarom123 2009-08-13
  • 打赏
  • 举报
回复
ID都可以自定义的啊

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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