首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于更新DetailsView的GridView和DetailsView代码

用于更新DetailsView的GridView和DetailsView代码
EN

Stack Overflow用户
提问于 2011-06-14 08:09:53
回答 1查看 4.7K关注 0票数 2

我花了整个下午的时间尝试使用后台代码来做这件事,但没有成功,所以我要一些C#代码。

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

代码语言:javascript
复制
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

    }
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-14 16:49:17

这里是一个通用的解决方案,向你展示如何实现这一点,请注意,这个解决方案并不是非常错误安全的,但我想你会了解它的要点。如果有任何不清楚的地方,请发表意见。

代码隐藏:

代码语言:javascript
复制
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();
    }
}

标记:

代码语言:javascript
复制
<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:

代码语言:javascript
复制
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();
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6337786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档