Home > DeveloperSection > Forums > How to find text-box in GridView using Javascript
Goti Bandu

Total Post:119

Points:835
Posted on    December-18-2014 10:07 PM

 ASP.Net C#  JavaScript  Gridview 
Ratings:


 2 Reply(s)
 767  View(s)
Rate this:

I am trying to get access and find text-box in GridView using javascript but i am getting an error: 'The name txt_UID' does not exist in the current context'. Everything worked fine when my text-box was outside of the GridView. Here is my text-box in the gridview and my gridview is called GridView1:

 

 <asp:TemplateField ItemStyle-Width="150px" HeaderText="User Assigned">

    <ItemTemplate> 

     <asp:TextBox ID="txt_UID" runat="server" Text='<%# Eval("UID")%>'

        CssClass="AutoCompleteTextBox" Width="130px" BackColor="LightGoldenrodYellow"></asp:TextBox>

       </ItemTemplate>

         <ItemStyle Width="150px" />

         </asp:TemplateField>

Here is my JavaScript:

 

  <script type ="text/javascript">

        function setAutoComplete() {

            var textBoxes = document.getElementsByClassName("AutoCompleteTextBox");

            for (var i = 0; i < textBoxes.length; i++) {

                addAutoComplete(textBoxes[i].id);

            }

        }

</script>

 

<script type="text/javascript">

    function addAutoComplete(textBoxId) {

        $("#" + textBoxId).autocomplete({

            source: function (request, response) {

                $.ajax({

                    url: '<%=ResolveUrl("~/Service.asmx/GetUserNames") %>',

                    data: "{ 'prefix': '" + request.term + "'}",

                    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) {

                $("#<%=hfUserId.ClientID %>").val(i.item.val);

            },

            minLength: 1

        });

    };

<script type ="text/javascript">

     $(document).ready(function () { setAutoComplete(); });

    </script>



Jeet Verma
Jeet Verma

Total Post:110

Points:776
Posted on    December-19-2014 1:41 AM

Your Gridview will be rendered as Table and your control will be contained in cell of table. You can give a try to following.

 

<script type=”text/javascript”>

$(document).ready(function(){

tblTable=document.getElementById(‘<<Client ID of the GridView>>’);

Cell=tblTable.rows[i].cells[j];//i and j are locations of that cell.

FirstControl = Cell.childNodes[0];

});

</script>

replace <<Client ID of the GridView>> with id of your GridView


marcel ethan
marcel ethan

Total Post:105

Points:735
Posted on    December-19-2014 6:40 AM

you can use name attribute and the grid id to find it:

 

<asp:TextBox ID="txt_UID" name="mytextbox" runat="server" Text='<%# Eval("UID")%>'

        Width="130px" BackColor="LightGoldenrodYellow"></asp:TextBox>

the javascript part:

 

$("#<%=MyGrid.ClientID %>[name=mytextbox]").autocomplete({});


Don't want to miss updates? Please click the below button!

Follow MindStick