选择多个行并检索值的ASP GridView



我正在尝试允许用户选择网格的多行,然后在文本框中显示这些选择值。我可以在文本框中获取一个值,并能够选择一行。如何更改我已经允许多个选择的内容?我尝试了下面发布的内容,认为添加对象的新实例可以让我在文本框中看到两个值,但它只是重复第一个选择的值。

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>

最新更新