将 gridview 模板字段文本框 id 传递给 javascript 函数

Posted

技术标签:

【中文标题】将 gridview 模板字段文本框 id 传递给 javascript 函数【英文标题】:Pass gridview template field text box id to a javascript function 【发布时间】:2018-05-22 21:08:51 【问题描述】:

我的网页中有一个 ASP GridView。

我有两个模板字段 1 个文本框和 1 个超链接。

如果我单击该特定行上的超链接,我需要在 gridview 的特定行中传递相应的文本框 ID。

<asp:TemplateField HeaderText="Input">
    <ItemTemplate>
        <asp:TextBox ID="txtInput" Text='<%# Eval("Input") %>' Width="200px" Height="70px" runat="server" TextMode="MultiLine"></asp:TextBox>
    </ItemTemplate>
    <ItemStyle Width="20px" Height="30px" BorderStyle="Solid" Font-Size="12px" HorizontalAlign="Left"
    VerticalAlign="Middle" />
</asp:TemplateField>

<asp:TemplateField HeaderText="Verify">
    <ItemTemplate>
        <a href="#" id="lnkView" onclick="GetResults('#<%= txtInput.ClientID %>')">
        <%#Eval("Verify")%>
        </a>
    </ItemTemplate>
    <ItemStyle Width="203px" Height="15px" BorderStyle="Solid" BorderWidth="1px" Font-Size="12px" HorizontalAlign="Left"
    VerticalAlign="Middle" />
</asp:TemplateField>

我尝试了以下代码,但由于当前上下文中不存在名称“txtInput”而出现错误。

javascript 函数

function GetResults(id) 

//My code using this textbox id


请帮助了解如何在点击超链接时将文本框 id 传递给 javascript 函数

【问题讨论】:

【参考方案1】:

这样的东西可能有效(未经测试)。

下一行,去掉#号。

<a href="#" id="lnkView" onclick="GetResults('<%= txtInput.ClientID %>')">

然后你的javascript:

function GetResults(id) 

var ctrlId = "[id$=" + id + "]"
var inputVal = $(ctrlId).val()

// do work


【讨论】:

以上是关于将 gridview 模板字段文本框 id 传递给 javascript 函数的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 将文本框中的值传递给控制器​​操作

如何绑定在父 Gridview 控件的模板字段内使用的子 Gridview 控件?

如何使用 EJS 模板引擎将变量传递给内联 javascript?

在gridview内单击按钮触发ui datepicker并将所选日期分配给当前行中的字段

将 pandas 数据框传递给 Django 模板

如何将javascript变量传递给django模板标签