首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET C#嵌套控件访问

问ASP.NET C#嵌套控件访问
EN

Stack Overflow用户
提问于 2013-02-08 08:18:13
回答 3查看 162关注 0票数 1

我也有类似的东西

代码语言:javascript
复制
<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#代码访问嵌套控件(标签、文字)?

编辑:

代码语言:javascript
复制
<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个首字母)?你能给我解释一下吗,我该怎么做?

EN

回答 3

Stack Overflow用户

发布于 2013-02-08 08:28:40

您可能希望有一个ItemDataBound事件处理程序来访问列表视图中该特定项的控件。我链接的页面上的示例应该会对您有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-02-08 08:29:26

首先,您需要一个与此ListView控件绑定的数据源,例如SqlDataSource,或者您需要的任何其他允许的类型:

代码语言:javascript
复制
<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方法。例如,获取这个字面值:

代码语言:javascript
复制
Literal l = (Literal)lv.FindControl("litControlTitle");

它会为您返回null,因为您没有要显示的数据,所以控件根本不会呈现。

票数 1
EN

Stack Overflow用户

发布于 2013-02-08 08:33:41

代码语言:javascript
复制
((Label)ListView1.FindControl("test")).Text = "Hello!";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14763629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档