get grid view hidden field value using JavaScriptJquery - Stack Overflow

Forgive my English, I had one challenge in my project I,e whenever I started to access hidden field val

Forgive my English, I had one challenge in my project I,e whenever I started to access hidden field value which in grid view using JavaScript or Jquery, I'm getting pilation error like hidden field doesn't exist in current context so how can I access hidden field value?

SelectPatientInfo.aspx

<asp:Content ID="Content2" ContentPlaceHolderID="cphContent" runat="Server">
    <script type="text/javascript">
        function DispValue(sender, e) {
            var id = e.get_value();
            document.getElementById("<%=PatientRefferalId.ClientID%>").value=id; //getting error here 
        }
    </script>

    <div align="left" style="float: left; margin-left: 5px;">
        <asp:GridView ID="gvPatient" runat="server" AutoGenerateColumns="false" EnableViewState="true">
            <Columns>
                <asp:TemplateField HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="12px" HeaderStyle-Height="20px">
                    <HeaderTemplate>&nbsp;Patient Name&nbsp;</HeaderTemplate>
                    <ItemTemplate>
                        <asp:HiddenField ID="PatientRefferalId" runat="server" Value="0" />
                        <PUC:PatientUserControl ID="pucPatient1" runat="server" OnClientSelect="DispValue" PTStatusShow="0"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
</asp:Content>

SelectPatientInfo.aspx.cs

protected void Page_Load(object sender, EventArgs e) {
    try {
        if (!IsPostBack) {
            dt = new DataTable();
            dt.Columns.Add("col1");
            dt.Columns.Add("col2");
            dt = AddRow(dt);
            gvPatient.DataSource = dt;
            gvPatient.DataBind();
        }
    } catch (Exception ex) {

    }
}

private DataTable AddRow(DataTable dt) {
    for (int i = 0; i < 5; i++) {
        DataRow dr = dt.NewRow();
        dr[0] = "";
        dr[1] = ""; dt.Rows.Add(dr);
    }
    return dt;
}

protected void GridPatient_DataBound(object sender, EventArgs e) {
    try {
        foreach (GridViewRow item in gvPatient.Rows) {
            HiddenField hfReferralId = (HiddenField)item.FindControl("PatientRefferalId");
            Response.write(hfReferralId.Value);
        }
    } catch (Exception ex) {

    }
}

Forgive my English, I had one challenge in my project I,e whenever I started to access hidden field value which in grid view using JavaScript or Jquery, I'm getting pilation error like hidden field doesn't exist in current context so how can I access hidden field value?

SelectPatientInfo.aspx

<asp:Content ID="Content2" ContentPlaceHolderID="cphContent" runat="Server">
    <script type="text/javascript">
        function DispValue(sender, e) {
            var id = e.get_value();
            document.getElementById("<%=PatientRefferalId.ClientID%>").value=id; //getting error here 
        }
    </script>

    <div align="left" style="float: left; margin-left: 5px;">
        <asp:GridView ID="gvPatient" runat="server" AutoGenerateColumns="false" EnableViewState="true">
            <Columns>
                <asp:TemplateField HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="12px" HeaderStyle-Height="20px">
                    <HeaderTemplate>&nbsp;Patient Name&nbsp;</HeaderTemplate>
                    <ItemTemplate>
                        <asp:HiddenField ID="PatientRefferalId" runat="server" Value="0" />
                        <PUC:PatientUserControl ID="pucPatient1" runat="server" OnClientSelect="DispValue" PTStatusShow="0"/>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
    </div>
</asp:Content>

SelectPatientInfo.aspx.cs

protected void Page_Load(object sender, EventArgs e) {
    try {
        if (!IsPostBack) {
            dt = new DataTable();
            dt.Columns.Add("col1");
            dt.Columns.Add("col2");
            dt = AddRow(dt);
            gvPatient.DataSource = dt;
            gvPatient.DataBind();
        }
    } catch (Exception ex) {

    }
}

private DataTable AddRow(DataTable dt) {
    for (int i = 0; i < 5; i++) {
        DataRow dr = dt.NewRow();
        dr[0] = "";
        dr[1] = ""; dt.Rows.Add(dr);
    }
    return dt;
}

protected void GridPatient_DataBound(object sender, EventArgs e) {
    try {
        foreach (GridViewRow item in gvPatient.Rows) {
            HiddenField hfReferralId = (HiddenField)item.FindControl("PatientRefferalId");
            Response.write(hfReferralId.Value);
        }
    } catch (Exception ex) {

    }
}
Share Improve this question edited Feb 28, 2013 at 4:26 António Almeida 10.1k8 gold badges62 silver badges71 bronze badges asked Oct 17, 2011 at 5:21 Sharanamma JekeenSharanamma Jekeen 1071 gold badge3 silver badges18 bronze badges 2
  • provide some code to find your issue. – Siva Charan Commented Oct 17, 2011 at 5:23
  • Not everyone will know what grid view is, or how it creates a hidden field value. – Greg Pettit Commented Oct 17, 2011 at 5:31
Add a ment  | 

3 Answers 3

Reset to default 3

I'm not sure the code

document.getElementById("<%=PatientRefferalId.ClientID%>")

will work, because you don't have only one "PatientRefferalId", but you get many (as many as numbers of rows in your gridview).

I don't know if there is a cleaner way, but I can do what you want by using this javascript code

var gv = document.getElementById("<%=gvPatient.ClientID%>");
var Rows = gv.getElementsByTagName("tr"); // Get all the rows from your gridview (rendered as html table).
// you can loop through the rows or if you know the row index, you can do:
alert(Rows[2].childNodes[0].children[0].value); // Show you the first control (the hiddenfield) of the first cell of the row #2.

Hi This post may help you.

var c = document.getElementsByTagName("table");
    for (var i = 0; i < c.length; i++) {
        if (c[i].id.indexOf("GridView1") > -1) {
            var hidd = c[i].getElementsByTagName("input");
            for (var j = 0; j < hidd.length; j++) {
                if (hidd[j].type == "hidden")
                    alert(hidd[j].id);
            }
        }
    }

And also refer following link .. its working to me..

http://forums.asp/p/1510265/3603566.aspx/1?Re+how+to+find+gridview+hidden+label+value+from+javascript

    <asp:Content ID="Content2" ContentPlaceHolderID="cphContent" runat="Server">
        <script type="text/javascript">
            function DispValue(btnShow) {
  var parentRow = $(btnShow).closest("tr");
var hiddenField=parentRow.find('input[id$=PatientRefferalId]');
 alert(hiddenField.val());

    return false;
            }
        </script>

        <div align="left" style="float: left; margin-left: 5px;">
            <asp:GridView ID="gvPatient" runat="server" AutoGenerateColumns="false" EnableViewState="true">
                <Columns>
                    <asp:TemplateField HeaderStyle-Font-Bold="true" HeaderStyle-Font-Size="12px" HeaderStyle-Height="20px">
                        <HeaderTemplate>&nbsp;Patient Name&nbsp;</HeaderTemplate>
                        <ItemTemplate>
                            <asp:HiddenField ID="PatientRefferalId" runat="server" Value="0" />

  <asp:LinkButton ID="lnkPopUp" runat="server" Style="font-size: 16px;" OnClientClick="return DispValue(this)"  Text="PopUp"
                                                       ></asp:LinkButton>

                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </div>
    </asp:Content>

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744356427a4570254.html

相关推荐

  • get grid view hidden field value using JavaScriptJquery - Stack Overflow

    Forgive my English, I had one challenge in my project I,e whenever I started to access hidden field val

    7天前
    20

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信