c# - GridView 和DetailsView 更新DetailsView 背后的代码

标签 c# asp.net gridview code-behind detailsview

我花了整个下午尝试使用 CODE BEHIND 来完成此操作,但没有成功,因此我需要一些 C# 代码。

基本上,我有一个处于主/详细关系的 GV 和 DV。 GV 显示 ID 和名称。如果我单击 GV 行上的“选择”,我想在 DV 中查看其 ID、名称和地址。我知道如何让它在 aspx 文件中以声明方式工作。但在后面的 C# 代码中,我不知道如何继续执行此函数:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName.Equals("Select"))
    {

    //  PLEASE GIVE ME THE CODE HERE TO BIND THE DETAILSVIEW. THANKS!
    // I am using a sqldatasource if it makes any difference

    }
 }

最佳答案

这是一个通用解决方案,向您展示如何实现此目的,请注意,该解决方案并不是非常安全,但我想您会明白它的要点。有什么不清楚的地方请评论。

隐藏代码:

protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "Select")
    {
        GridViewRow selected = gv.Rows[Convert.ToInt32(e.CommandArgument)];
        List<ThatClass> cList = new List<ThatClass>();
        cList.Add(new ThatClass(selected.Cells[0].Text, selected.Cells[1].Text));
        dv.DataSource = cList;
        dv.DataBind();
    }
}

标记:

<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" OnRowCommand="gv_RowCommand">
    <Columns>
        <asp:BoundField DataField="A" HeaderText="A"/>
        <asp:BoundField DataField="B" HeaderText="B" />
        <asp:CommandField ShowSelectButton="true" />
    </Columns>
</asp:GridView>

<asp:DetailsView runat="server" ID="dv">
</asp:DetailsView>

仅供引用:我使用列表绑定(bind) GV:

protected void Page_Load(object sender, EventArgs e)
{
    List<ThatClass> cList = new List<ThatClass>();
    cList.Add(new ThatClass("123", "abc"));
    cList.Add(new ThatClass("456", "def"));
    gv.DataSource = cList;
    gv.DataBind();
}

关于c# - GridView 和DetailsView 更新DetailsView 背后的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6337786/

相关文章:

c# - Gridview:根据同一行中单元格的值更改链接按钮文本

c# - C# 集合是否关心缓存友好性?

c# - 对 ASP.NET 2.0 网页进行单元测试的最佳方法是什么?

asp.net 必填字段验证器禁用输入按钮表单提交

c# - Entity Framework 4 升级问题,不允许同时按名称和属性加载

.net - 关于正则表达式中的组匹配的问题

c# - 想从 gridview 中的日期中删除时间,但我使用了数据适配器和数据表

android - setOnItemClickListener() 无法在 Fragment 中的 gridView 上工作

C# 在特定内存地址创建对象

c# - 在 C# 中初始化嵌套字典