我想单击gridview行事件获取该行并获得第一列然后根据第一列数据弹出另外一个gridview
另外一个gridview的数据就是我点击那行的第一个单元格为条件查出来的数据,要有aspx和aspx.cs的代码,能够点击按钮也行,只要可以弹出另一个gridview...
另外一个gridview的数据就是我点击那行的第一个单元格为条件查出来的数据,要有aspx和aspx.cs的代码,能够点击按钮也行,只要可以弹出另一个gridview
展开
4个回答
展开全部
我倒是有个方法,楼主参考下吧
把Button的CommandArgument绑定数据为第一列的数据
点击按钮后触发GridView的RowCommand事件,在RowCommand事件里用e.CommondArgument可以取到第一列数据;
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandArgument='<%# Eval("ID") %>' Text="查看"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
取值代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
TextBox1.Text = e.CommandArgument.ToString() ;
}
把Button的CommandArgument绑定数据为第一列的数据
点击按钮后触发GridView的RowCommand事件,在RowCommand事件里用e.CommondArgument可以取到第一列数据;
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1" onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"
CommandArgument='<%# Eval("ID") %>' Text="查看"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
取值代码:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
TextBox1.Text = e.CommandArgument.ToString() ;
}
展开全部
前台
<asp:GridView ID="GridView2" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div id="dvv" runat="server" visible="false"
style=" width:120%; height:120%;z-index: 1000px;position:absolute;left: 0px; top:0px; filter:alpha(opacity=90); background-color:#F2F2F2">
<br /><br /><br /><br /><br /><br /><br /><br />
<br />
<asp:GridView ID="GridView3" runat="server">
</asp:GridView>
</div>
后台
protected void Button2_Click(object sender, EventArgs e)
{
BindData();//给另一个gridview绑定数据源
this.dvv.Visible = true;//点击button显示gridview
}
<asp:GridView ID="GridView2" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<div id="dvv" runat="server" visible="false"
style=" width:120%; height:120%;z-index: 1000px;position:absolute;left: 0px; top:0px; filter:alpha(opacity=90); background-color:#F2F2F2">
<br /><br /><br /><br /><br /><br /><br /><br />
<br />
<asp:GridView ID="GridView3" runat="server">
</asp:GridView>
</div>
后台
protected void Button2_Click(object sender, EventArgs e)
{
BindData();//给另一个gridview绑定数据源
this.dvv.Visible = true;//点击button显示gridview
}
追问
现在最关键是我怎么才能获取单元格了,因为我要根据单元格查询另外一个表
追答
" runat="server" onclick="Button2_Click" Text="Button" />
CommandArgument绑定你的主键或者查询另外一个表的关键字段
this.Button2.CommandArgument就可以获得这个值!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
沿用前面的回答
protected void Button2_Click(object sender, EventArgs e)
{
GridViewRow row = (sender as Button).NamingContainer as GridViewRow;
//获得该行索引
int index = row.RowIndex;
//获得该行主键值 GridView前面应设置过DataKeyNames属性
string key = GridView1.DataKeys[index].Value.ToString();
//执行你要的操作
}
protected void Button2_Click(object sender, EventArgs e)
{
GridViewRow row = (sender as Button).NamingContainer as GridViewRow;
//获得该行索引
int index = row.RowIndex;
//获得该行主键值 GridView前面应设置过DataKeyNames属性
string key = GridView1.DataKeys[index].Value.ToString();
//执行你要的操作
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用的是datagrid vb.net实现,如下
.aspx页面:
<asp:DataGrid Width="100%" ID="dgField" runat="server" CellPadding="5" ForeColor="#333333"
OnSelectedIndexChanged="SelectedIndex_Changed" PageSize="10" GridLines="Both"
AllowPaging="True" OnPageIndexChanged="MyDataGrid_Page" ShowFooter="false">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" Mode="NumericPages"
Font-Size="12px" PageButtonCount="5" />
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#EFF3FB" HorizontalAlign="Center" Width="60px" Font-Size="12px" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" Font-Size="13px"
HorizontalAlign="Center" />
<Columns>
<asp:ButtonColumn CommandName="Select" Text="查看" HeaderText="查看">
<ItemStyle Font-Size="12px" HorizontalAlign="Center"/>
</asp:ButtonColumn>
</Columns>
</asp:DataGrid>
.aspx.cs页面:
Public Sub SelectedIndex_Changed(ByVal sender As Object, ByVal e As EventArgs) Handles dgField.SelectedIndexChanged
Dim strValue As Integer = dgField.SelectedItem.Cells(1).Text ‘这个是根据主键定位行,比如你上面应该是 dgField.SelectedItem.Cells(2).Text 吧?
.....’你这里的话应该可以根据strValue 查询出详细数据,再绑定另一个datagridview吧
End Sub
原理一样,改成c#也很简单。你可以参考一下
.aspx页面:
<asp:DataGrid Width="100%" ID="dgField" runat="server" CellPadding="5" ForeColor="#333333"
OnSelectedIndexChanged="SelectedIndex_Changed" PageSize="10" GridLines="Both"
AllowPaging="True" OnPageIndexChanged="MyDataGrid_Page" ShowFooter="false">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<SelectedItemStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" Mode="NumericPages"
Font-Size="12px" PageButtonCount="5" />
<AlternatingItemStyle BackColor="White" />
<ItemStyle BackColor="#EFF3FB" HorizontalAlign="Center" Width="60px" Font-Size="12px" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" Font-Size="13px"
HorizontalAlign="Center" />
<Columns>
<asp:ButtonColumn CommandName="Select" Text="查看" HeaderText="查看">
<ItemStyle Font-Size="12px" HorizontalAlign="Center"/>
</asp:ButtonColumn>
</Columns>
</asp:DataGrid>
.aspx.cs页面:
Public Sub SelectedIndex_Changed(ByVal sender As Object, ByVal e As EventArgs) Handles dgField.SelectedIndexChanged
Dim strValue As Integer = dgField.SelectedItem.Cells(1).Text ‘这个是根据主键定位行,比如你上面应该是 dgField.SelectedItem.Cells(2).Text 吧?
.....’你这里的话应该可以根据strValue 查询出详细数据,再绑定另一个datagridview吧
End Sub
原理一样,改成c#也很简单。你可以参考一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询