初学者的问题

chang1216 2004-08-26 04:13:08
我的一个人员对应多个部门 我如何才能用一个datagrid 即显示人员列表 又能显示对应人员所对应的部门列表.谢谢
...全文
151 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
srz007 2004-08-27
  • 打赏
  • 举报
回复
再做一个显示信息的详细页,在DATAGRID中的人员名字上加个指向到这个详细页的连接,传这个人的id号过来,然后在详细页根据这个id号在数据库中搜索出你需要的人的详细资料就ok了
chang1216 2004-08-27
  • 打赏
  • 举报
回复
up
chang1216 2004-08-27
  • 打赏
  • 举报
回复
好 还有一个问题 就是点击某个人以后 显示人员基本信息 怎么显示 我是初学者 请帮忙
chang1216 2004-08-27
  • 打赏
  • 举报
回复
谢谢了
srz007 2004-08-27
  • 打赏
  • 举报
回复
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;

namespace YourNameSpace
{
public class YourClass : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label label1;

private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection Conn = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);//建立数据库连接,字符串是写在web.config中的
SqlCommand cmdInfoDetail = new SqlCommand();//建立SqlCommand 对象,主要功能就是往里写SQL语句
cmdInfoDetail.Connection = Conn;
cmdInfoDetail.CommandText = "Select * From 你的表名 where 用户Id =" + RequestQueryString["Person ID"].ToString();
Conn.Open();//打开连接
SqlDataReader drInfoDetail = cmdInfoDetail.ExecuteReader();//把SQL语句读到的数据存到一个SqlDataReader 中,这个相当于asp里的RS
if(drInfoDetail.Read())//如果SqlDataReader 中有记录的话就给label1赋值
{
label1.Text = drInfoDetail["字段名"].ToString();
}
Conn.Close();//关闭
Conn.Dispose();//清空对象,以下也一样
cmdInfoDetail.Dispose();
drInfoDetail.Close();
}
}
}
wplp1024 2004-08-27
  • 打赏
  • 举报
回复
再showPerson.cs里面 接收了 一个Person ID 后,再根据这个值到数据库中取出相关值不就行了吗
chang1216 2004-08-27
  • 打赏
  • 举报
回复
谢谢 srz007(呵呵)大哥 我原来做了一年多的asp这个我懂 我就是对C#语法不熟悉 所以 不是很明白怎么写 你有例子吗? 谢谢了 假如我再showPerson.cs里面 接收了 一个Person ID 我怎么把 其它的信息显示出来 label1.text="字段名"吗?
srz007 2004-08-26
  • 打赏
  • 举报
回复
比较省事的办法是在数据库中建立视图,把人员表中的所在部门的id号和部门表中的部门id号关联起来,这样显示的就是人员和部门相对应的表了,然后在DATAGRID中正常循环显示这个视图就可以了
jijl2001 2004-08-26
  • 打赏
  • 举报
回复
SQL实现就行了
wudilaoshu 2004-08-26
  • 打赏
  • 举报
回复
可不可以用模板列 来嵌套DATAGRID??
tongzw 2004-08-26
  • 打赏
  • 举报
回复
在人员表和部门表添加datarelation,然后显示在两层的datagrid里面
chang1216 2004-08-26
  • 打赏
  • 举报
回复
guanvee(答对就给分) 说说你的具体步骤好吗? 小弟刚学 .net 遇到了这样的问题 请赐教
chang1216 2004-08-26
  • 打赏
  • 举报
回复
triout(笨牛)大哥 你说的好像很对 可是对于我这个初学者来说 有点看不懂 能不能再详细一些 我再研究一下!!
real0411 2004-08-26
  • 打赏
  • 举报
回复
同意楼上的

人员 部门
name dept.(DropDownList)

就素介个意思。
guanvee 2004-08-26
  • 打赏
  • 举报
回复
to:triout(笨牛)
一个人员对应多个部门,照你那样的话,只能重复显示人员了
看需求如何了
guanvee 2004-08-26
  • 打赏
  • 举报
回复
不知道你的数据库结构如何?
在datagrid中显示所有人员,在这个datagrid中通过绑定
<%# getdept(DataBinder.Eval(Container, "DataItem.p_id").ToString()) %>
在后台getdept函数中去根据人员id找到所有的部门,至于怎么显示,全在这个函数控制了
triout 2004-08-26
  • 打赏
  • 举报
回复
把部门列表以DROPDOWNLIST或其他的方式显示,而人员列表则作为主要信息显示。

1——
先检索人员信息,把数据绑定到DATAGRID

2——
为DATAGRID设置ITEMDATABOUND事件处理函数

3——
在2中定义的函数中使用以下代码:

DropDownList ddlTmp=e.Item.FindControl("DropDownList1") as DropDownList;
if(ddlTmp!=null)
{
//这里想办法获得当前人员的ID等信息从而获得当前人员的部门列表信息然后把获得的数据绑定到ddlTmp中
}

4——
关于如何在3中获得人员的部门信息:
为DATAGRID定义DataKeyField指向人员列表的关键字段,然后通过DataGrid的Keys集合从e.ItemIndex中获得对应的关键字段的值。
chang1216 2004-08-26
  • 打赏
  • 举报
回复
up

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧