我有类似的东西
<asp:ListView ID="lv" runat="server">
<LayoutTemplate>
<asp:Literal ID="litControlTitle" runat="server" />
<label id="test" runat="server">dw</label>
<asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
</LayoutTemplate>
<ItemTemplate>
</ItemTemplate>
</asp:ListView>
有人可以告诉我,我应该如何使用C#代码更改标签文字? 对我来说主要的问题是如何从c#代码访问嵌套控件(标签,文字)?
编辑:
<SelectedItemTemplate>
<asp:HiddenField ID="NumberEdit" runat="server"
Value='<%# Bind("numbers") %>' />
<label for="NameEdit">Name:</label>
<asp:TextBox ID="NameEdit" Width="160px" runat="server" AutoPostBack="true" OnTextChanged="NameEdit_TextChanged"
Text='<%# Bind("Name") %>' />
<br />
<label for="ShortcutEdit">Shortcut:</label>
<asp:TextBox ID="ShortcutEdit" Width="80px" runat="server"
Text='<%# Bind("Shortcut") %>' />
<br />
我想在用户更改Name(Shortcut = NameEdit的第一个字母)时自动生成快捷方式文本?你能解释一下我该怎么办? -
答案 0 :(得分:2)
您可能希望拥有一个ItemDataBound事件处理程序来访问listview中该特定项的控件。我链接的页面上的示例可以帮助您。
答案 1 :(得分:1)
首先,您需要使用此ListView
控件绑定的数据源,例如SqlDataSource
或您需要的任何其他允许类型:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:YourConnectionString %>"
SelectCommand="SELECT [Title], [id] FROM [Articles]"></asp:SqlDataSource>
<asp:ListView ID="lv" runat="server" DataSourceID="SqlDataSource1" >
// rest of the code
</asp:ListView>
第二件事是,只有在要显示的数据时才会呈现来自LayoutTemplate
模板的控件。因此,如果您有数据源,但它是空的,则不会应用此模板。但是,当数据源中没有任何内容可供显示时,您可以使用EmptyDataTemplate
显示信息。
然后,当您已经定义了数据源并绑定到ListView
并且会显示数据时,将会呈现LayoutTemplate
。然后,您可以使用FindControl
的{{1}}方法。至于获得这个文字的例子:
ListView
它为您返回null,因为您没有要显示的数据,因此根本不会呈现控件。
答案 2 :(得分:0)
((Label)ListView1.FindControl("test")).Text = "Hello!";