我也有类似的东西
<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 />我想在用户更改名称时自动生成快捷方式文本(快捷方式=来自NameEdit的2个首字母)?你能给我解释一下吗,我该怎么做?
发布于 2013-02-08 08:28:40
您可能希望有一个ItemDataBound事件处理程序来访问列表视图中该特定项的控件。我链接的页面上的示例应该会对您有所帮助。
发布于 2013-02-08 08:29:26
首先,您需要一个与此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。然后你可以使用ListView的FindControl方法。例如,获取这个字面值:
Literal l = (Literal)lv.FindControl("litControlTitle");它会为您返回null,因为您没有要显示的数据,所以控件根本不会呈现。
发布于 2013-02-08 08:33:41
((Label)ListView1.FindControl("test")).Text = "Hello!";https://stackoverflow.com/questions/14763629
复制相似问题