gpt4 book ai didi

javascript - 使用 JavaScript/Jquery 获取 GridView 隐藏字段值

转载 作者:行者123 更新时间:2023-11-30 13:28:07 24 4
gpt4 key购买 nike

请原谅我的英语,我在我的项目中遇到了一个挑战,即每当我开始使用 JavaScript 或 Jquery 访问 GridView 中的隐藏字段值时,我都会收到编译错误,如 隐藏字段不存在在当前上下文中 那么如何访问隐藏字段值?

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

}
}

最佳答案

我不确定代码

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

会起作用,因为您不只有一个“PatientRefferalId”,但您会得到很多(与 gridview 中的行数一样多)。

我不知道是否有更简洁的方法,但我可以使用这段 javascript 代码做你想做的事

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.

关于javascript - 使用 JavaScript/Jquery 获取 GridView 隐藏字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789670/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com