我试图让用户选择我的网格的多行,然后在文本框中显示这些选定的值。我可以在文本框中输入一个值,并能够选择一行。如何更改已有的内容以允许多项选择?我尝试了下面发布的内容,认为添加一个新的对象实例可以让我在文本框中看到这两个值,但它只是重复了第一个选定的值。
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>
答案 0 :(得分:2)
由于您使用的是ASP.Net网络表单,我建议在其中创建一个placinig复选框控件,然后用户单击要选择的行上的复选框。在butto click事件中的代码中,通过查找checkbox.checked属性来查找行。然后读取所需的单元格数据并将其附加到文本框中。
<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.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>