嵌套的子DataList控件中的按钮单击事件问题!!!!!!!!!!!(急!!!!在线等待!!!!解决马上给分)

seaofsoul 2004-12-23 10:23:25
DataList1中的嵌套一个DataList2.通过DataList1的ItemDataBound事件中查找DataList2控件,给DataList2设置数据源,绑定数据.
在DataList2中的ItemDataBound事件中手动的绑定.现在有个问题是,我在DataList2中有个按钮.CommandName="Add",
private void DataList2_ItemCommand(object source, DataListCommandEventArgs e) 就是不能执行,为什么?


private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
DataRow dr=ds.Tables["Types"].Rows[e.Item.ItemIndex];

DataList DataList2 = (DataList)e.Item.FindControl("DataList2");
SqlParameter[] paras = new SqlParameter[]{
new SqlParameter("@TypeId",SqlDbType.Int)
};
paras[0].Value=dr["RecId"];
ds=conn.ExecuteProc("Products_SelectForTypeId",paras,"Products");
DataList2.DataSource=ds.Tables["Products"].DefaultView;

//绑定事件可以正常.
DataList2.ItemDataBound+=new DataListItemEventHandler(DataList2_ItemDataBound);
//DataList2.ItemCommand事件不能执行,为什么?如何解决?
DataList2.ItemCommand+=new DataListCommandEventHandler(DataList2_ItemCommand);
DataList2.DataBind();
ds.Tables.Remove("Products");
}
}


private void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem)
{
DataRow dr=ds.Tables["Products"].Rows[e.Item.ItemIndex];
Literal lbSmallImage=(Literal)e.Item.FindControl("lbSmallImage");
lbSmallImage.Text="<a href='ProductShow.aspx?RecId="+dr["RecId"].ToString()+"'><img src='../images/Products/"
+dr["BigImage_Save"].ToString()+"' border=0 height=75 width=75></a><br>";

Literal lbName=(Literal)e.Item.FindControl("lbName");
lbName.Text=dr["Name"].ToString();

Literal lbSCPrice=(Literal)e.Item.FindControl("lbSCPrice");
lbSCPrice.Text=dr["SCPrice"].ToString();

Literal lbSDPrice=(Literal)e.Item.FindControl("lbSDPrice");
lbSDPrice.Text=dr["SDPrice"].ToString();

Literal lbCJPrice=(Literal)e.Item.FindControl("lbCJPrice");
lbCJPrice.Text=dr["CJPrice"].ToString();

HyperLink hlXQ=(HyperLink)e.Item.FindControl("hlXQ");
hlXQ.NavigateUrl="ProductShow.aspx?RecId="+dr["RecId"].ToString();

HyperLink hlLB=(HyperLink)e.Item.FindControl("hlLB");
hlLB.NavigateUrl="ProductsListShow.aspx?TypeId="+dr["TypeId"].ToString();
}
}

private void DataList2_ItemCommand(object source, DataListCommandEventArgs e)
{
Response.Write("aaaaaaaaaaaaaaaaaaaaa");
}
...全文
330 24 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
nga96 2005-02-04
  • 打赏
  • 举报
回复
太难太难
AllenTing 2005-02-04
  • 打赏
  • 举报
回复
ZG
zhangql873568 2005-02-04
  • 打赏
  • 举报
回复
up
噯卟釋手 2005-02-04
  • 打赏
  • 举报
回复
请参考
http://community.csdn.net/Expert/topic/3600/3600123.xml?temp=.9944727

里面思归老大的回答 请注意object的使用 也许能给你点启发
a7lang 2005-01-05
  • 打赏
  • 举报
回复
请参考http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/vbcon/html/vbtskrespondingtobuttoneventsindatalistitems.asp
seaofsoul 2005-01-05
  • 打赏
  • 举报
回复
我晕死哦.各位大哥们,请看看我的程序....

嵌套的DataList2的DataList2_ItemDataBound事情里面的代码可以运行,也就是说DataList2里要绑定的数据可以绑定,但就是DataList2里的一个模版列中包含的一个按钮的单击事件不知道怎么获取,然后执行代码。。。。。。
请帮忙哦。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
tengjian1981 2004-12-31
  • 打赏
  • 举报
回复
up
xjs1231 2004-12-31
  • 打赏
  • 举报
回复
我也正遇到这个问题,关注中
softchao 2004-12-31
  • 打赏
  • 举报
回复
三层就找不到控件了么???
seaofsoul 2004-12-30
  • 打赏
  • 举报
回复
各位老大们,都没有人来帮小弟一把吗?
zooo 2004-12-30
  • 打赏
  • 举报
回复
呵呵
看来都不会
等能人来吧!
postfix2 2004-12-30
  • 打赏
  • 举报
回复
private void TitleList_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataTable dt = da.Clone ();
DataRow[] arrdr = da.Select ("b_class='" + ((Literal)e.Item.FindControl ("title")).Text + "'");
for (int i=0;i<arrdr.Length;i++)
{
dt.ImportRow (arrdr[i]);
}

Control c = e.Item.FindControl ("InfoList");
if (c != null)
{
((Repeater)c).DataSource = dt;
((Repeater)c).DataBind ();
}
}
}
tengjian1981 2004-12-30
  • 打赏
  • 举报
回复
up
nickycheng 2004-12-30
  • 打赏
  • 举报
回复
你在aspx文件里写一个事件绑定

<asp:DataList id="DataList2" runat="server" OnItemDataBound="DataList2_ItemDataBound"></asp:DataList>

.cs文件里就直接
private void DataList2_ItemDataBound(object sender, DataListItemEventArgs e)
{
}
leihome 2004-12-30
  • 打赏
  • 举报
回复
帮你顶
xxwnet 2004-12-30
  • 打赏
  • 举报
回复
UP
rickjelly2004 2004-12-27
  • 打赏
  • 举报
回复
给它加一个事件委托吧
AddHandler CType(dgListArticle.Items(i).Cells(5).FindControl("DropDownList1"), DropDownList).SelectedIndexChanged, AddressOf Selectchange
seaofsoul 2004-12-25
  • 打赏
  • 举报
回复
都没有高手解决吗?
请帮忙呀..................
tengjian1981 2004-12-24
  • 打赏
  • 举报
回复
up
zhangql873568 2004-12-24
  • 打赏
  • 举报
回复
这个问题也是我想问的。帮顶

我是在Datalist中嵌套了一个Datagrid,Datagrid中有个LinkButton按钮,想给按钮写响应代码。
我在html中给这个LinkButton添加了onclick事件“OnClick=click”。cs文件中定义的click函数如下:
public void click(object sender, System.EventArgs e)
{
if(((Label)((DataGrid)DataList1.SelectedItem.FindControl("Datagrid1")).SelectedItem.FindControl("Label2")).Text=="{new}")
{
SqlCommand scm=new SqlCommand();
scm.Connection=new SqlConnection(connstr);
scm.CommandText="update oa_file_dom set file_tag=null where file_id="+((Label)((DataGrid)DataList1.SelectedItem.FindControl("Datagrid1")).SelectedItem.FindControl("Label1")).Text+"'";
scm.Connection.Open();
scm.ExecuteNonQuery();
scm.Connection.Close();
}
SqlDataAdapter mysda=new SqlDataAdapter(strSQL,connstr);
DataSet ds=new DataSet();
mysda.Fill(ds,"Datagrid");
((DataGrid)DataList1.SelectedItem.FindControl("Datagrid1")).DataSource=ds.Tables["Datagrid"].DefaultView;
((DataGrid)DataList1.SelectedItem.FindControl("Datagrid1")).DataBind();
}


结果总是说没有将对象设置引用到对象实例。我挑试了一下,是DataList1.SelectedItem的问题,也就是不能用这个办法访问DataList1中的控件了。而onclick事件的函数只能传递object sender, System.EventArgs e两个参数。我该怎么办,各位!
加载更多回复(4)

62,243

社区成员

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

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

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

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