【问题标题】:How to get textbox value thru javascript which is in footer row of gridview control如何使用位于gridview控件页脚行中的javascript获取文本框值
【发布时间】:2014-11-09 18:10:40
【问题描述】:

我在aspx页面中使用gridview的下面代码,请注意在form标签下的gridview。

 <Grdview:GridViewExtended ID="GridView1" runat="server"
    AutoGenerateColumns="False" CssClass="Grid"
        onpageindexchanging="GridView1_PageIndexChanging" 
        onselectedindexchanged="GridView1_SelectedIndexChanged" PageSize="6" 
        ShowFooter="True" Width="543px" 
        onselectedindexchanging="GridView1_SelectedIndexChanging" 
        AllowPaging="True" EditIndex="-1" 
    ShowHeaderWhenEmpty="True" ShowFooterWhenEmpty="True">
    <HeaderStyle CssClass ="yui-grid"/>
    <Columns>
                <asp:TemplateField HeaderText="Job_No">
                 <ItemTemplate>
                    <asp:Label ID="lbl1" runat="server" Text='<%# Eval("Job_No") %>'> </asp:Label>
                </ItemTemplate>
                <FooterTemplate>
                    <asp:TextBox ID="txtSearch" runat="server" Height="19px" Width="87px" 
                        CssClass="textEntry" ToolTip="Add New Entry"></asp:TextBox>
                        <asp:HiddenField ID="hfCustomerId" runat="server" />
                </FooterTemplate>
            </asp:TemplateField>

我在 aspx 页面中使用的 Javascript 代码

<script type="text/javascript">
$(document).ready(function () {

    $("#GridView1").find(".textEntry").autocomplete({
        source: function (request, response) {
            $.ajax({
                url: '<%#ResolveUrl("~/Service.asmx/GetCustomers") %>',
                dataType: "json",
                type: "POST",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    response($.map(data.d, function (item) {
                        return {
                            label: item.split('-')[0],
                            val: item.split('-')[1]
                        }
                    }))
                },
                error: function (response) {
                    alert(response.responseText);
                },
                failure: function (response) {
                    alert(response.responseText);
                }
            });
        },
        select: function (e, i) {
            $("#<%=hfCustomerId.ClientID %>").val(i.item.val);
        },
        minLength: 1
    });
});

如何使用此 Javascript 代码获取文本框控件(txtSearch)?谢谢

【问题讨论】:

  • 这里有两次.. &lt;FooterTemplate&gt; 你是遗漏了代码还是那个类型
  • @DJKRAZE 不,只有一个 一个 TemplateField 但在 中有两个控件,一个是文本框,另一个是 HiddenField..
  • $("#&lt;%=txtSearch.ClientID %&gt;")这个命令有效吗?
  • @Hamix no hamix 我在显示的代码中使用的相同命令。 "名称 'txtSearch' 在当前上下文中不存在"

标签: c# javascript html asp.net


【解决方案1】:
<Grdview:GridViewExtended ID="GridView1" runat="server" ClientIDMode="Static" >

ClientIDMode 设置为Static 并执行此操作

$(document).ready(function () {

    $("#GridView1").find(".textEntry").autocomplete({});

});

【讨论】:

  • ..谢谢,但它现在显示运行时错误。 “无法修改 Controls 集合,因为该控件包含代码块(即 )。”
  • 使用&lt;%# 而不是&lt;%=
  • 感谢它工作,但它没有调用 Service.asmx 页面没有按预期工作请检查我更新了我的代码。
  • Service.asmx 地址不正确。使用调试器或console.log() 获取&lt;%#ResolveUrl("~/Service.asmx/GetCustomers") %&gt; 值并与真实地址进行比较。
  • 链接可能有用ResolveUrl() without Page
猜你喜欢
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-25
相关资源
最近更新 更多