我有一个GridView如下
`<asp:GridView ID="gvSearchAll" runat="server" AutoGenerateColumns="False"
OnPageIndexChanging="searchAll_PageIndexChanging"
onrowdatabound="OnRowDataBound">
<Columns>
<asp:BoundField DataField="A" HeaderText="A"/>
<asp:BoundField DataField="B" HeaderText="B"/>
<asp:BoundField DataField="C" HeaderText="C" />
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="RowSelector" runat="server" onclick="checkRadioBtn(this);" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>`
CodeBehind上的OnRowDataBound,我有以下内容:
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[3].Attributes.Add("onclick", string.Format("DisplayDetails('{0}');", e.Row.RowIndex + 1));
e.Row.Attributes["onmouseover"] = "onMouseOver('" + (e.Row.RowIndex + 1) + "')";
e.Row.Attributes["onmouseout"] = "onMouseOut('" + (e.Row.RowIndex + 1) + "')";
}
}
现在我想要的是在单击复选框时运行的DisplayDetails函数。
function DisplayDetails(row) {
var gridView = document.getElementById('gvSearchAll');
document.getElementById("A").value = gridView.rows[row].cells[1].innerText;
document.getElementById("B").value = gridView.rows[row].cells[0].innerText;
}
我想要做的是,当点击该复选框时,我想将特定复选框的A和B列数据填充到某个文本字段。
onClick函数checkRadioBtn(this)执行其他操作。
现在,当我单击CheckBox的整个单元格时,我正在执行Display Details功能。 我需要的是在checkRadioBtn(this)函数中执行DisplayDetails函数,但为此我需要像(this.row_index)这样的东西,我无法弄清楚如何做。
请帮忙。
答案 0 :(得分:0)
为什么使用复选框,您可以使用链接按钮
轻松实现像这样
<asp:GridView ID="gvSearchAll" runat="server" AutoGenerateColumns="False"
OnPageIndexChanging="searchAll_PageIndexChanging" >
<Columns>
<asp:BoundField DataField="A" HeaderText="A"/>
<asp:BoundField DataField="B" HeaderText="B"/>
<asp:BoundField DataField="C" HeaderText="C" />
<asp:TemplateField HeaderText="Select">
<ItemTemplate >
<asp:LinkButton ID="RowSelector" Text="Details" OnClientClick = "return Details(this)" runat="server" CommandName="Select" ></asp:LinkButton>
</ItemTemplate>
</Columns>
</asp:GridView>
脚本
function Details(lnk) {
var row = lnk.parentNode.parentNode;
var rowIndex = row.rowIndex - 1;
document.getElementById("A").value = gridView.rows[row].cells[1].innerText;
document.getElementById("B").value = gridView.rows[row].cells[0].innerText;
}