Datalist中Button的Click方法怎么得到其它控件的ID?
在Datalist中,,有三个控件..Button1 Label1 和DropDownList1..
我想当我选取了DropDownList1中的一个值时,,,单击Button1后就将该值赋给Label1.text..
在.CS文件中..
protected void Button1_Click(object sender, EventArgs e)
{
可是在这里面....却没有Label1控件的ID.....
}
我应该怎么办? --------------------编程问答-------------------- 不是这个事件
你DataList中的Button的事件是通过ItemDataBind这个事件用FindControl找到的,而不是事先注册的,明白么?
ItemDataBind这个事件里面,用e.Item.ItemIndex拿到行的索引
然后e.Item.FindControl(ID)去找到相应的控件
就可以了 --------------------编程问答-------------------- 楼上正解
Button btn = ((Button)(this.DataList.Item[e.Item.ItemIndex].FindControl("Button1"))); --------------------编程问答-------------------- 大哥..能给个详细的示例代码吗?? --------------------编程问答-------------------- 那就算查到了..就比如说..这个新的Button的ID为btn
那么它的单击事件怎么写?? --------------------编程问答-------------------- Item.FindControl(""); --------------------编程问答--------------------
在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)
{
//在这里实现方法
} --------------------编程问答-------------------- 我记得btn.Attributres.add("onclick","btn_click()");
是调用的javascript的方法吧?
。。。。学习中。。。。。。。 --------------------编程问答-------------------- 编译器错误消息: CS1061: “System.Web.UI.WebControls.DataList”不包含“Item”的定义,并且找不到可接受类型为“System.Web.UI.WebControls.DataList”的第一个参数的扩展方法“Item”(是否缺少 using 指令或程序集引用?)
出现错误了.. --------------------编程问答-------------------- 是DataList的ItemDataBInd事件
在这个事件里面
用e.Item.ItemIndex去判断索引 --------------------编程问答-------------------- protected void Default_Top_RightContDataL_ItemDataBound(object sender, DataListItemEventArgs e)
{
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;
}
} --------------------编程问答-------------------- 参考现形的:
http://blog.csdn.net/insus/archive/2008/02/27/2123970.aspx --------------------编程问答-------------------- 11楼的方法....
异常详细信息: 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;
}
} --------------------编程问答-------------------- 在Framework2.0中我试过是可以的,3.5的话我就不清楚了.....
期待中...... --------------------编程问答-------------------- 楼主绑定DataList时确保没有问题吗,再试试吧,
我想2.0和3.5区别不应该太大吧 --------------------编程问答-------------------- 绑定时应该没有问题..数据显示都正常.....
我想过了...我想要的目的没有那么复杂了..可以简化实现..
只要一个Button..不用laebl和DropDownList了.
当点击Button点击后.....Datalist就重新执行一次绑定数据..并显示出来....
就像Delete按钮删除一条新闻后..上面的新闻列表就自动刷新一下..进行重新排序那种效果... --------------------编程问答-------------------- 不好意思了,没能解决问题,还需努力努力努力 --------------------编程问答-------------------- 呵呵..没关系....谢谢你的帮忙....您能百忙抽时间回复我的贴子..就已很知足了....
..我再翻翻书看看.. --------------------编程问答-------------------- Buttion btn = (Buttion)Sender;
DataItemList item= (DataItemList)btn.Parent;
Label lbl = item.FindControl("label1");
DropDownList ddl = item.FindControl("DropDownList1");
lbl.Text = ddl.SelectedItem.text;
以上代码写到按钮事情中 就能实现你想要的效果。
补充:.NET技术 , ASP.NET