ASP Gridview选择多行并检索值

时间:2014-03-06 20:14:32

标签: c# asp.net 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>

1 个答案:

答案 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();


} 

REVISION - 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>