在另一个gridview中传输数据

时间:2011-01-16 21:05:52

标签: c# asp.net

我有这些列的gridview:id,name,price,quantity,total。此外,我在gridview的每一行都有一个按钮和复选框。当我检查一些行时,我希望这些行与按钮在另一个gridview中传输。我怎么能这样做?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="id" DataSourceID="SqlDataSource3">


        <Columns>
                        <asp:TemplateField>
                <ItemTemplate>
                    <asp:CheckBox ID="chkSelect" runat="server" />
                    <asp:HiddenField ID="hdValue" runat="server" Value='<%#Eval("ID") %>' />
                </ItemTemplate>
            </asp:TemplateField>

            <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" 
                ReadOnly="True" SortExpression="id" />
            <asp:BoundField DataField="name" HeaderText="name" ReadOnly="True" 
                SortExpression="name" />
            <asp:BoundField DataField="price" DataFormatString="{0:c}" HeaderText="price" 
                ReadOnly="True" SortExpression="price" />
            <asp:BoundField DataField="quantity" HeaderText="quantity" 
                SortExpression="quantity" />
            <asp:BoundField DataField="total" DataFormatString="{0:c}" HeaderText="total" 
                ReadOnly="True" SortExpression="total" />


        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT * FROM [Land]"></asp:SqlDataSource>
</div>
<div>

    <asp:Button ID="Button1" runat="server" Text="Button" />

</div>

1 个答案:

答案 0 :(得分:0)

在处理数据网格时,我通常会创建一个包含数据模板的类,然后我从这个类创建对象并放入一个列表,然后我可以轻松地将此列表绑定到任何网格。

例如:

public class LandTemplate
{
  public property Id{get; set;}
  public property Name{get; set;}
  public property Price{get; set;}
  public property Quantity{get; set;}
  public property Total{get; set;}
}

然后在你的方法中,点击复选框事件就可以了:

List<LandTemplate> landList = new List<LandTemplate>();
public void CheckBox_Click(object sender, EventArgs e)
{
   // get data from the current grid row...

   LandTemplate land = new LandTemplate();
   land.Id= currentRow.Id;
   land.Name = currentRow.Name;
   ....

   landList.Add(land);

}

public void Button_Click(object sender, EventArgs e)
{
   this.gridView1.DataSource = landList;
       this.gridView1.DataBind();
}

但是你需要在一个视图状态或会话中保存LandList,以便在每次刷新页面后不会丢失数据。

我没有检查语法,但我希望你明白了。