itemcommand(c#中如何访问datalist控件中ItemTemplate中的控件值)

本文目录
- c#中如何访问datalist控件中ItemTemplate中的控件值
- 如何阻止itemcommand enter键提交
- .NET中datalist的ItemCommand,RowCommand是什么
- Repeater的ItemCommand事件一个小问题
c#中如何访问datalist控件中ItemTemplate中的控件值
在“源“中指定Label控件的ID,在DataList的ItemCommand事件中取得相应id对应的控件。 “源“代码:《ItemTemplate 《div style=“text-align:left“/产品ID: 《asp:Label ID=“LblProductID“ runat=“server“ Text=’《%# Eval(“ID“) %’《/asp:Label / 产品名称:《asp:Label ID=“LblName“ runat=“server“ Text=’《%# Eval(“Name“) %’《/asp:Label / 产品规格: 《%# Eval(“Quantity“) % / 产品价格: 《asp:Label ID=“LblPrice“ runat=“server“ Text=’《%# Eval(“Price“) %’《/asp:Label / 产品描述: 《%# Eval(“Description“) % //《asp:LinkButton ID=“LinkButton1“ runat=“server“ CommandName=“Buy“Buy《/asp:LinkButton《/div《/ItemTemplate 这行《asp:LinkButton ID=“LinkButton1“ runat=“server“ CommandName=“Buy“Buy《/asp:LinkButton是添加了一个LinkButton按钮,它的CommandName属性是“Buy“,是ItemCommand事件的一个标记,表示按下了这个LinkButton按钮。 程序代码(写在ItemCommand事件里面) protected void DltProduct_ItemCommand(object source, DataListCommandEventArgs e){if (e.CommandName == “Buy“){// 完成购买 Label lblID = e.Item.FindControl(“LblProductID“) as Label; Label lblName = e.Item.FindControl(“LblName“) as Label; Label lblPrice = e.Item.FindControl(“LblPrice“) as Label; int id = Convert.ToInt32( lblID.Text ); string name = lblName.Text; decimal price = Convert.ToDecimal( lblPrice.Text); Profile.Save();}}那三个Label lblID、lblName、lblPrice就是DataList控件里对应id的Label了,你可以在程序里对他们操作了
如何阻止itemcommand enter键提交
出现自动提交的情况,有两种可能:
一是编写了javascript代码,当用户点按Enter键时,通过js事件侦听机制触发表单的提交。
二是利用了浏览器的默认行为(至少发现ie是这样的)。浏览器在解析网页的时候,有许多默认的行为,例如如果一个页面上有表单和一个提交按钮,那么打开页面时,焦点会自动落在这个提交按钮上面。同样如果一个表单中只有一个单行文本输入域(text),那么在这个输入域中按Enter键时,浏览器会自动提交该表单。
我们对于第一种情况一般都知道而且很容易理解,但是对于第二种浏览器的默认行为,可能知道这一点的人就比较少了,下面我具体看一下浏览器(至少ie如此)在表单提交上的默认行为。
如果表单中含有一个单行文本输入域,那么无论含有多少其他类型的表单组件,那么在该输入域中点击Enter时,表单会自动提交。例如下面的代码:
《form action=““ method=“post“
《input type=“text“
name=“sdfsdf“/
《textarea《/textarea
《input type=“checkbox“sdfsdf
《input type=“hidden“name=“aa“/《/form
如果表单中含有两个或多个单行文本输入域,那么无论是否含有其他类型的表单组件,按Enter键时不会自动提交,例如:
《form action=““ method=“post“
《input type=“text“
name=“sdfsdf“/
《input type=“text“
name=“sddf“/《/form
办法很简单,我们上面举的例子中已经有了,只要再添加一个文本输入框就可以了,可能你会说,为了不自动提交就要增加一个没有用的输入框,而且中含有两个输入框最终用户会接受吗?其实可以解决,你可以将那个新添加的输入框通过style隐藏即可,例如:
《form action=““ method=“post“
《input type=“text“ name=“notautosubmit“
style=“display:none“/
《input type=“text“
name=“username“/《/form
还有一个方法可以绑定button按钮 enter触发事件:
document.onkeypress = function(){
if(event.keyCode == 13) {search();returnfalse;}}其中search方法是onclick事件:《form name=“searchfrom“
.NET中datalist的ItemCommand,RowCommand是什么
DataList有ItemCommand事件,RowCommand是GridView的事件
所有DataList中的按钮都会引发DataList的ItemCommand事件(RowCommand类似),这也是通常所说的事件冒泡
Repeater的ItemCommand事件一个小问题
首先要设置 linbutton的CommandName 属性为“审核”(自己改为英文)
然后在事件中写:
LinkButton linbutton = e.Item.FindControl(“linkbuttonID“) as LinkButton;
switch (e.CommandName)
{
case “审核“:
linbutton.CommandName = “已审核“;
linbutton.Text = “已审核“;
break;
case “已审核“:
linbutton.CommandName = “审核“;
linbutton.Text = “审核“;
break;
}

本文相关文章:
php datetime(php中怎么转换datetime到datestamp)
2026年8月30日 02:10
updating your firmware什么意思(firmware update是什么意思)
2026年8月1日 05:20
update的形容词(是keep you update 还是keep you updated 呢,why)
2026年7月31日 20:20
formdata数据后端如何获取(html5 formdata 后台怎么解析)
2026年7月8日 17:20
wdatepicker maxdate(开始时间小于结束时间 WdatePicker这个控件是如何处理的)
2026年6月6日 22:00
更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00





