我正在尝试允许用户选择网格的多行,然后在文本框中显示这些选择值。我可以在文本框中获取一个值,并能够选择一行。如何更改我已经允许多个选择的内容?我尝试了下面发布的内容,认为添加对象的新实例可以让我在文本框中看到两个值,但它只是重复第一个选择的值。
protected void dropdeadGridView_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)
{
GridViewRow row = dropdeadGridView.Rows[e.NewSelectedIndex];
GridViewRow row1 = dropdeadGridView.Rows[e.NewSelectedIndex];
}
protected void dropdeadGridView_SelectedIndexChanged1(object sender, EventArgs e)
{
GridViewRow row = dropdeadGridView.SelectedRow;
GridViewRow row1 = dropdeadGridView.SelectedRow;
IDTextBox.Text = row.Cells[1].Text + "," + row1.Cells[1].Text;
loadnumTextBox.Text = row.Cells[2].Text + "," + row1.Cells[2].Text;
}
ASP代码
<asp:GridView ID="dropdeadGridView" runat="server" Height="300px"
Width="650px" BackColor="Black" BorderStyle="Solid"
CellPadding="3" Font-Bold="True" ForeColor = "Yellow"
onselectedindexchanging="dropdeadGridView_SelectedIndexChanging"
autogenerateselectbutton="true" selectedindex="0"
onselectedindexchanged="dropdeadGridView_SelectedIndexChanged1" >
<RowStyle HorizontalAlign="Center" />
<SelectedRowStyle BorderStyle="Inset" BorderColor="Red" ForeColor="Red" />
</asp:GridView>
由于您使用的是ASP.NET Web表单,因此建议创建一个placinig在其中内部的复选框控件,然后用户单击他们想要选择的行上的复选框。在Butto单击事件的后面的代码中,查找复选框。检查属性。之后,读取所需的单元格数据并将其附加到您的文本框上。
<asp:GridView ID="yourGrid" runat="server" AutoGenerateColumns="False"
DataSourceID="YourSource" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="YourCheckBox" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Name" HeaderText="Name" />
<asp:BoundField DataField="ModifiedDate" HeaderText="ModifiedDate" />
<asp:CommandField ShowEditButton="True" />
</Columns>
</asp:GridView>
这里是##
后面的更新代码如果您不喜欢jQuery,那就去做。
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = (CheckBox)sender;
GridViewRow gr = (GridViewRow)chk.Parent.Parent;
txtBox.Text = GridView1.DataKeys[gr.RowIndex].Value.ToString();
}
修订 - jQuery解决方案
但是,我认为根据您的要求最简单的方法是使用jQuery。
首先将jQuery脚本添加到您的项目中。如果您的项目还没有,请访问jquery.com下拉最新脚本。在您的页面头部标记添加参考
<script type="text/javascript" src="The source of your JS file"></script>
然后在身体的尽头写下你的jQuery。
<script type="text/javascript">
$(document).ready(function () {
// Capture the click event by going through the gridview > tablerow > tabledisplay > `lastly the checkbox - grab the click event.
$('#GrdViewID' tr td
input[id*="chkSelected"]`[type=checkbox]:checked').on('click',function () {
$('#txtBox').text($(this).closest('tr').find('td').eq(2).text());
});
</script>