gpt4 book ai didi

asp.net - 在 Javascript 中获取 GridView 选定行的 DataKey

转载 作者:数据小太阳 更新时间:2023-10-29 03:50:18 25 4
gpt4 key购买 nike

我有 GridView,我可以选择一行。然后我在网格上方有一个名为“编辑”的按钮,用户可以单击该按钮弹出一个窗口并编辑所选行。所以这个按钮后面会有 Javascript 代码

function editRecord()
{
var gridView = document.getElementById("<%= GridView.ClientID %>");
var id = // somehow get the id here ???
window.open("edit.aspx?id=" + id);
}

问题是如何在 javascript 中检索选定的记录 ID?

最佳答案

我是根据 JasonS 的回复算出来的。我所做的是在 GridView 中创建一个隐藏字段,如下所示:

<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:HiddenField ID="hdID" runat="server" Value='<%# Eval("JobID") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField Visible="False">
<ItemTemplate>
<asp:LinkButton ID="lnkSelect" runat="server" CommandName="select" Text="Select" />
</ItemTemplate>
</asp:TemplateField>

然后在 OnRowDataBind 上有设置选中行的代码

protected virtual void Grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
// Click to highlight row
Control lnkSelect = e.Row.FindControl("lnkSelect");
if (lnkSelect != null)
{
StringBuilder click = new StringBuilder();
click.AppendLine(m_View.Page.ClientScript.GetPostBackClientHyperlink(lnkSelect, String.Empty));
click.AppendLine(String.Format("onGridViewRowSelected('{0}')", e.Row.RowIndex));
e.Row.Attributes.Add("onclick", click.ToString());
}
}
}

然后在 Javascript 中我有这样的代码

<script type="text/javascript">

var selectedRowIndex = null;

function onGridViewRowSelected(rowIndex)
{
selectedRowIndex = rowIndex;
}

function editItem()
{
if (selectedRowIndex == null) return;

var gridView = document.getElementById('<%= GridView1.ClientID %>');
var cell = gridView.rows[parseInt(selectedRowIndex)+1].cells[0];
var hidID = cell.childNodes[0];
window.open('JobTypeEdit.aspx?id=' + hidID.value);
}

</script>

工作愉快:-)

关于asp.net - 在 Javascript 中获取 GridView 选定行的 DataKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/228549/

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