在学asp.net技术内幕这本书,有个例子中的一条语句不是很明白,请大家帮忙看看.代码:
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.Data.SqlClient" %><Script Runat="Server">Sub Page_Load
If Not IsPostBack Then
Dim conNorthwind As SqlConnection
Dim cmdSelect As SqlCommand
Dim dtrCategories As SqlDataReader conNorthwind = New SqlConnection( "Server=localhost;UID=sa;PWD=;Database=Northwind" )
cmdSelect = New SqlCommand( "Select CategoryName From Categories", conNorthwind )
conNorthwind.Open()
dtrCategories = cmdSelect.ExecuteReader() rptCategories.DataSource = dtrCategories
rptCategories.DataBind() dtrCategories.Close()
conNorthwind.Close()
End If
End SubSub Button_Click( s As Object, e As RepeaterCommandEventArgs )
Dim lbtnSelected As LinkButton lbtnSelected = e.Item.Controls( 1 )
lblCategory.Text = "You selected " & lbtnSelected.Text
End Sub</Script><html>
<head><title>LinkButtonList.aspx</title></head>
<body>
<form Runat="Server"><asp:Repeater
ID="rptCategories"
OnItemCommand="Button_Click"
Runat="Server"><ItemTemplate>
<li>
<asp:LinkButton
Text='<%# Container.DataItem( "CategoryName" ) %>'
Runat="Server" />
</ItemTemplate></asp:Repeater><p>
<asp:Label
ID="lblCategory"
Runat="Server" /></form>
</body>
</html>
========================其中的 lbtnSelected = e.Item.Controls( 1 ) ,为什么要用 1 呢?请大家帮忙解释一下,谢谢.
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.Data.SqlClient" %><Script Runat="Server">Sub Page_Load
If Not IsPostBack Then
Dim conNorthwind As SqlConnection
Dim cmdSelect As SqlCommand
Dim dtrCategories As SqlDataReader conNorthwind = New SqlConnection( "Server=localhost;UID=sa;PWD=;Database=Northwind" )
cmdSelect = New SqlCommand( "Select CategoryName From Categories", conNorthwind )
conNorthwind.Open()
dtrCategories = cmdSelect.ExecuteReader() rptCategories.DataSource = dtrCategories
rptCategories.DataBind() dtrCategories.Close()
conNorthwind.Close()
End If
End SubSub Button_Click( s As Object, e As RepeaterCommandEventArgs )
Dim lbtnSelected As LinkButton lbtnSelected = e.Item.Controls( 1 )
lblCategory.Text = "You selected " & lbtnSelected.Text
End Sub</Script><html>
<head><title>LinkButtonList.aspx</title></head>
<body>
<form Runat="Server"><asp:Repeater
ID="rptCategories"
OnItemCommand="Button_Click"
Runat="Server"><ItemTemplate>
<li>
<asp:LinkButton
Text='<%# Container.DataItem( "CategoryName" ) %>'
Runat="Server" />
</ItemTemplate></asp:Repeater><p>
<asp:Label
ID="lblCategory"
Runat="Server" /></form>
</body>
</html>
========================其中的 lbtnSelected = e.Item.Controls( 1 ) ,为什么要用 1 呢?请大家帮忙解释一下,谢谢.
解决方案 »
- 在asp.Net网站中,怎样实现多条件搜索。类似京东一类购物网站的逐渐增加条件
- asp.net分配权限时遇到的问题(4个dropdownlist控件)
- Gridview 分页问题
- treeview根节点数总是为0,取不到根节点
- 关于 提交页UTF-8 GB2312编码问题
- 90分 求解决办法?有条件性的选择某节点的子节点的问题,逻辑思维好的朋友来帮帮忙
- 伪静态带参数的配置该如何写?
- 判断某字段是否存在代入的字符
- 请教一个Response.Redirect的问题
- 请问如何在Javascript中出发某个Web控件的某一事件
- 上传文件的安全性问题!
- @Assembly指令与@Import指令有什么区别,请指教~
<li>
<asp:LinkButton id="lbCat"
Text='<%# Container.DataItem( "CategoryName" ) %>'
Runat="Server" />
</ItemTemplate>
lbtnSelected = DirectCast(e.Item.FindControl("lbCat"), LinkButton)is probably better
不过如果这样没错的话.那看来是把button当成第二个item了。
<%@ Page Language="VB" Debug="true" %>
<%@ Import Namespace="System.Data.SqlClient" %><Script Runat="Server">Sub Page_Load
If Not IsPostBack Then
Dim conNorthwind As SqlConnection
Dim cmdSelect As SqlCommand
Dim dtrCategories As SqlDataReader conNorthwind = New SqlConnection( "Server=nh;UID=sa;PWD=;Database=Northwind" )
cmdSelect = New SqlCommand( "Select * From Categories", conNorthwind )
conNorthwind.Open()
dtrCategories = cmdSelect.ExecuteReader() rptCategories.DataSource = dtrCategories
rptCategories.DataBind() dtrCategories.Close()
conNorthwind.Close()
End If
End SubSub Button_Click( s As Object, e As RepeaterCommandEventArgs )
Dim lbtnSelected As LinkButton
lbtnSelected = e.Item.Controls(1)
lblCategory.Text = "You selected " & lbtnSelected.Text Dim lbtnSelected2 As LinkButton
lbtnSelected2 = e.Item.Controls(3)
lblCategory2.Text = "You selected " & lbtnSelected2.Text
End Sub</Script><html>
<head><title>LinkButtonList.aspx</title></head>
<body>
<form Runat="Server"><asp:Repeater
ID="rptCategories"
OnItemCommand="Button_Click"
Runat="Server">
<ItemTemplate> <asp:LinkButton
Text='<%# Container.DataItem( "CategoryName" ) %>'
Runat="Server" /> <asp:LinkButton
Text='<%# Container.DataItem( "Categoryid" ) %>'
Runat="Server" />
</ItemTemplate>
</asp:Repeater>
<p>
<asp:Label
ID="lblCategory"
Runat="Server" />
<BR>
<asp:Label
ID="lblCategory2"
Runat="Server" />
</form>
</body>
</html>
Text='<%# Container.DataItem( "CategoryName" ) %>'
Runat="Server" />或者看一下Sub Button_Click( s As Object, e As RepeaterCommandEventArgs )
for each c as Control in e.Item.Controls
Page.Response.Write(c.GetType().Name & "<BR>")
next
End Sub
程序就是把<li>,空行,空格等当成一个LiterlaControl.