Hierarchy 的主从表绑定 和 update 主从表数据

本文展示了如何在ASP.NET中使用Telerik的RadGrid组件进行主从表数据绑定,并处理主从表数据的更新操作。通过`RadGrid1_NeedDataSource`事件加载主表数据,`RadGrid1_detaildata`事件加载从表数据,以及`RadGrid1_UpdateCommand`事件分别更新主表和从表的数据。示例代码中详细说明了如何获取和更新主从表中的特定字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)

    {

        string str = "select * from Users" ;

        DataTable dt = AspnetDbConnector .GenerateDataTable(str);

        RadGrid1.DataSource = dt;

    }

    protected void RadGrid1_detaildata(object sender, GridDetailTableDataBindEventArgs e)

{

// GridDetailTable 获取 GridDataItem item 标示

        GridDataItem dataItem = (GridDataItem )e.DetailTableView.ParentItem;

// 得到主表的 userId

  string userId = dataItem.OwnerTableView.Items[dataItem.ItemIndex].GetDataKeyValue("userId" ).ToString();

        string str2 = "select * from TeamUser where userId='" + userId + "'" ;

        DataTable dt2 = AspnetDbConnector .GenerateDataTable(str2);

        e.DetailTableView.DataSource = dt2;

 

       

    }

 

    protected void RadGrid1_UpdateCommand(object sender, GridCommandEventArgs e)

{

// 判断事件是来自主表还是从表

        if (e.Item.OwnerTableView.Name=="Master" )

        {

            string userId = e.Item.OwnerTableView.Items[e.Item.ItemIndex].GetDataKeyValue("userId" ).ToString();

            TextBox tb = (TextBox ) e.Item.FindControl("tb1" );

            string loginname = tb.Text;

 

            string updateSql1 = "update Users set loginname='" + loginname + "' where userId='" + userId + "'" ;

            AspnetDbConnector .runSql(updateSql1);

        }

        else if (e.Item.OwnerTableView.Name=="Detail" )

        {

            string teamuserId = e.Item.OwnerTableView.Items[e.Item.ItemIndex].GetDataKeyValue("teamuserId" ).ToString();

            TextBox tb = (TextBox )e.Item.FindControl("tb1" );

            string description = tb.Text;

            string updateSql2 = "update TeamUser set description= '" + description + "' where teamuserId='" + teamuserId +

                                "'" ;

            AspnetDbConnector .runSql(updateSql2);

        }

    }

 

 

Html 代码:

<% @ Page Language ="C#" AutoEventWireup ="true" CodeFile ="Default4.aspx.cs" Inherits ="Default4" %>

 

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

< html xmlns ="http://www.w3.org/1999/xhtml">

< head runat ="server">

    < title ></ title >

</ head >

< body >

    < form id ="form1" runat ="server">

    < telerik : RadScriptManager ID ="RadScriptManager1" runat ="server">

                   < Scripts >

                            <% --Needed for JavaScript IntelliSense in VS2010-- %>

                            <% --For VS2008 replace RadScriptManager with ScriptManager-- %>

                            < asp : ScriptReference Assembly ="Telerik.Web.UI" Name ="Telerik.Web.UI.Common.Core.js" />

                            < asp : ScriptReference Assembly ="Telerik.Web.UI" Name ="Telerik.Web.UI.Common.jQuery.js" />

                            < asp : ScriptReference Assembly ="Telerik.Web.UI" Name ="Telerik.Web.UI.Common.jQueryInclude.js" />

                   </ Scripts >

         </ telerik : RadScriptManager >

    < div >

   

        < telerik : RadGrid ID ="RadGrid1" runat ="server" GridLines ="None"

            onneeddatasource ="RadGrid1_NeedDataSource"

            OnDetailTableDataBind =" RadGrid1_detaildata "

            onitemcommand ="RadGrid1_ItemCommand"

            onupdatecommand ="RadGrid1_UpdateCommand" >

< MasterTableView DataKeyNames ="userId" Name ="Master" CommandItemDisplay ="Top">

    < DetailTables >

        < telerik : GridTableView runat ="server" Name ="Detail" DataKeyNames ="teamuserId" CommandItemDisplay =Top>

            < ParentTableRelation >

                < telerik : GridRelationFields DetailKeyField ="userId" MasterKeyField ="userId" />

            </ ParentTableRelation >

            < CommandItemSettings ExportToPdfText ="Export to Pdf" />

            < RowIndicatorColumn >

                < HeaderStyle Width ="20px" />

             </ RowIndicatorColumn >

            < ExpandCollapseColumn >

                < HeaderStyle Width ="20px" />

            </ ExpandCollapseColumn >

            < Columns >

                < telerik : GridEditCommandColumn >

                </ telerik : GridEditCommandColumn >

                < telerik : GridButtonColumn Text ="Temp" CommandName ="Test"></ telerik : GridButtonColumn >

                < telerik : GridTemplateColumn HeaderText ="description">

                < ItemTemplate >

                < asp : label ID ="TextBox1" runat ="server"

                Text =' <% # Bind("description") %> ' ></ asp : label >

                </ ItemTemplate >

                < EditItemTemplate >

                < asp : TextBox ID ="tb1" runat ="server"

                Text =' <% # Bind("description") %> ' ></ asp : TextBox >

                </ EditItemTemplate >

                </ telerik : GridTemplateColumn >

            </ Columns >

 

< EditFormSettings >

< EditColumn UniqueName ="EditCommandColumn1"></ EditColumn >

</ EditFormSettings >

        </ telerik : GridTableView >

    </ DetailTables >

< CommandItemSettings ExportToPdfText ="Export to Pdf"></ CommandItemSettings >

 

< RowIndicatorColumn >

< HeaderStyle Width ="20px"></ HeaderStyle >

</ RowIndicatorColumn >

 

< ExpandCollapseColumn Visible ="True">

< HeaderStyle Width ="20px"></ HeaderStyle >

</ ExpandCollapseColumn >

    < Columns >

        < telerik : GridTemplateColumn HeaderText ="loginname">

        < ItemTemplate >

        < asp : label ID ="TextBox1" runat ="server"

                Text =' <% # Bind("loginname") %> ' ></ asp : label >

        </ ItemTemplate >

        < EditItemTemplate >

         < asp : TextBox ID ="tb1" runat ="server"

                Text =' <% # Bind("loginname") %> ' ></ asp : TextBox >

        </ EditItemTemplate >

        </ telerik : GridTemplateColumn >

        < telerik : GridEditCommandColumn >

        </ telerik : GridEditCommandColumn >

    </ Columns >

 

< EditFormSettings >

< EditColumn UniqueName ="EditCommandColumn1"></ EditColumn >

</ EditFormSettings >

</ MasterTableView >

        </ telerik : RadGrid >

   

    </ div >

    </ form >

</ body >

</ html >


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值