【问题标题】:ASP.NET: How to assign ID to a field in DetailsView?ASP.NET:如何将 ID 分配给 DetailsView 中的字段?
【发布时间】:2010-05-25 06:06:15
【问题描述】:

我有一个主从页面,我在其中使用 GridView 显示多行数据,并使用 DetailsView + jQuery 对话框显示单个记录的详细信息。一次只能打开一个 DetailsView。

我需要能够提取打开的 DetailsView 的单个字段,以便使用 JavaScript 进行操作。有没有办法为 DetailsView 中的给定字段提供唯一 ID,以便我可以使用 getElementByID?还是有其他方法可以完成我想做的事情?

提前谢谢你。

【问题讨论】:

    标签: asp.net javascript jquery


    【解决方案1】:

    如果您在详细信息视图的模板字段中使用绑定文本框,则可以通过以下方式选择它:

    $("[id$='MyTextBox']");
    

    这将找到绑定到 MyFieldName 的文本框,如下所示。

    <asp:DetailsView ID="DetailsView1" runat="server">
        <Fields>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:TextBox ID="MyTextBox" Text='<%# Bind("MyFieldName")%>' runat="server"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
        </Fields>
    </asp:DetailsView>
    

    asp.net 在 id 开头添加的任何内容都无关紧要,因为 jQuery $= 表示“以”结尾。

    【讨论】:

    • 谢谢。但是,问题不在于使用 jQuery 查找项目——它为文本框分配了一个 ID 以供 jQuery 查找。
    • 如果您在详细信息视图中使用模板字段,则您将数据绑定到模板中现在的 asp.net 控件,例如文本框或标签。与所有 .net 控件一样,您可以为这些控件指定一个唯一 ID。呈现的 html 控件的 id 将始终以您在详细信息视图模板字段中为数据绑定 asp.net 控件提供的 id 结尾。
    【解决方案2】:

    可能有更好的方法,但是当我需要一个可用于 js 工作的 id 时,我只是将绑定字段转换为模板字段。然后,您可以为文本框提供您选择的 id。请记住,渲染时 id 将使用父控件的 id 进行扩展。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 2012-02-18
      • 2021-04-20
      • 2021-10-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-30
      相关资源
      最近更新 更多