不是这个事件
你DataList中的Button的事件是通过ItemDataBind这个事件用FindControl找到的,而不是事先注册的,明白么?ItemDataBind这个事件里面,用e.Item.ItemIndex拿到行的索引
然后e.Item.FindControl(ID)去找到相应的控件
就可以了
你DataList中的Button的事件是通过ItemDataBind这个事件用FindControl找到的,而不是事先注册的,明白么?ItemDataBind这个事件里面,用e.Item.ItemIndex拿到行的索引
然后e.Item.FindControl(ID)去找到相应的控件
就可以了
Button btn = ((Button)(this.DataList.Item[e.Item.ItemIndex].FindControl("Button1")));
那么它的单击事件怎么写??
在DataList的ItemDataBind里面
Button btn = ((Button)(this.DataList.Item[e.Item.ItemIndex].FindControl("Button1")));
btn.Attributes.Add("onclick", "btn_Click()");在外面写方法
protected void btn_Click(object sender, EventArgs e)
{
//在这里实现方法
}
是调用的javascript的方法吧?。学习中。
出现错误了..
在这个事件里面
用e.Item.ItemIndex去判断索引
{
Button btn =((Button)(this.Default_Top_CenterContDataL.Item[e.Item.ItemIndex].FindControl("ButTouP")));
btn.Attributes.Add("onclick", "btn_Click()");
}
protected void btn_Click(object sender, EventArgs e)
{
Response.Write("试试!");
}对啊..就这样子的啊...
编译器错误消息: CS1061: “System.Web.UI.WebControls.DataList”不包含“Item”的定义,并且找不到可接受类型为“System.Web.UI.WebControls.DataList”的第一个参数的扩展方法“Item”(是否缺少 using 指令或程序集引用?)
Button btn =((Button)(this.Default_Top_CenterContDataL.Item[e.Item.ItemIndex].FindControl("ButTouP")));
上面这一行提示出错...我的是(.NET Framework 3.5)的..
在ItemDataBind事件中为btn添加Command响应事件
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{ Button mybtn = e.Item.FindControl("btn") as Button;
mybtn.CommandName = "myclick";
mybtn.CommandArgument = e.Item.ItemIndex.ToString();
}点击Datalist添加一个ItemCommand事件protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "myclick")
{
(DataList1.Items[e.Item.ItemIndex].FindControl("Label1") as Label).Text =
(DataList1.Items [e.Item.ItemIndex].FindControl("DropDownList1") as DropDownList).SelectedItem.Text; }
}
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
mybtn.CommandName = "myclick";报错...protected void Default_Top_RightContDataL_ItemDataBound(object sender, DataListItemEventArgs e)
{
Button mybtn = e.Item.FindControl("TouP") as Button;
mybtn.CommandName = "myclick";
mybtn.CommandArgument = e.Item.ItemIndex.ToString();
}
protected void Default_Top_RightContDataL_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "myclick")
{
(Default_Top_RightContDataL.Items[e.Item.ItemIndex].FindControl("Label1") as Label).Text = (Default_Top_RightContDataL.Items[e.Item.ItemIndex].FindControl("DropDownList1") as DropDownList).SelectedItem.Text;
}
}
期待中......
我想2.0和3.5区别不应该太大吧
我想过了...我想要的目的没有那么复杂了..可以简化实现..只要一个Button..不用laebl和DropDownList了.
当点击Button点击后.....Datalist就重新执行一次绑定数据..并显示出来....就像Delete按钮删除一条新闻后..上面的新闻列表就自动刷新一下..进行重新排序那种效果...
DataItemList item= (DataItemList)btn.Parent;
Label lbl = item.FindControl("label1");
DropDownList ddl = item.FindControl("DropDownList1");
lbl.Text = ddl.SelectedItem.text;以上代码写到按钮事情中 就能实现你想要的效果。