繁体   English   中英

GridView 及详情查看后面的代码以更新详情查看

[英]GridView and DetailsView Code Behind to Update DetailsView

我整个下午都在尝试使用 CODE BEHIND 来执行此操作,但没有成功,所以我要求提供一些 C# 代码。

基本上,我有一个 GV 和一个 DV 处于主/详细关系中。 GV 显示 ID 和名称。 如果我在 GV 行上单击 Select,我想在 DV 中查看其 ID、名称和地址。 我知道如何让它在 aspx 文件中以声明方式工作。 但是在 C# 代码后面,我不知道如何处理这个 function:

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>

仅供参考:我使用列表绑定 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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM