我有这些列的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>
答案 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,以便在每次刷新页面后不会丢失数据。
我没有检查语法,但我希望你明白了。