首页 > 编程 > .NET > 正文

asp.net2.0实现主从数据表的简单方法

2024-07-10 13:11:08
字体:
来源:转载
供稿:网友

实现效果:在主表里选中某行,从表里得出该行的详情。

方法1:代码实现。
在页面上放一个gridview,一个detailview。数据绑定gridview并且要设置主键,然后在selectedindexchanged事件写代码:选择发生变化时,detailview也改变为相应的detail。
具体代码:
using system;
using system.data;
using system.configuration;
using system.collections;
using system.web;
using system.web.security;
using system.web.ui;
using system.web.ui.webcontrols;
using system.web.ui.webcontrols.webparts;
using system.web.ui.htmlcontrols;
using system.data.sqlclient;


public partial class masterdetail2 : system.web.ui.page
{
    protected void page_load(object sender, eventargs e)
    {
        if (!page.ispostback)
        {
            string sql = "select * from [orders]";
            gridview1.datasource = binding(sql);
            gridview1.datakeynames = new string[] { "orderid" };
            gridview1.databind();
        }
     }

    protected void gridview1_selectedindexchanged(object sender, eventargs e)
    {
        string orderid = convert.tostring(gridview1.selectedvalue);
        string sql =  "select * from [orderdetails] where [orderid]='" + orderid + "'";
        detailsview1.datasource = binding(sql);
        detailsview1.databind();
    }


    /**//// <summary>
    /// 执行sql语句返回一个数据表
    /// </summary>
    /// <param name="sql">所要执行的sql语句</param>
    /// <returns>datatable</returns>
    protected datatable binding(string sql)
    {
        sqlconnection myconn = new sqlconnection(configurationmanager.connectionstrings["appconnectionstring1"].connectionstring);
        datatable dt=new datatable();
        sqldataadapter myadapter = new sqldataadapter(sql, myconn);
        myadapter.fill(dt);
        return dt;

    }
}
方法2:设置控件属性实现
在页面上放一个gridview,一个detailview,然后每个对应一个数据源。只要在detailview的数据源的selectcommand里使用gridview的selectedvalue作为参数,即可实现。
            <selectparameters>
                <asp:controlparameter controlid="employeesgridview" name="addressid" propertyname="selectedvalue"
                    type="int32" />
            </selectparameters>
两种方法都很简单,方法2基本无代码实现,方法1控制更灵活。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表