2010-11-19 77 views
0

如何以编程方式更新详细信息视图。不通过SQL数据源或通过向导。我想从代码隐藏更新详细信息视图(.cs)以编程方式更新详细信息视图C#

我有一个用UserNames加载下拉菜单,选择用户名,我加载详细信息视图与用户信息。

现在我想以编程方式提供更新功能。

我该怎么做?

+0

你想让用户更新详细信息吗?你用什么来呈现信息; Winform,Webform,MVC? – Holystream 2010-11-19 21:42:18

回答

0

尝试把详细信息视图周围的更新面板。向面板添加异步回发触发器 - 下拉列表的更改事件。

将下拉列表设置为autopostback。

您将在没有完整回传的情况下获得所需的行为。

你也许能做得更好,但这会奏效。

+0

我正在做你说的,但我的问题是如何更新DetailsView使用C#编程? – msbyuva 2010-11-19 20:03:49

+0

使用事件处理程序 - 下拉列表selectedindexchanged – Broam 2010-11-26 14:56:00

0

如果您已经在下拉列表选择后显示任何表单上的数据,则可以使用 您正在使用“SelectedIndexChanged”事件。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     StringBuilder sb = new StringBuilder(); 
     // show user details for example by get the data from db 
     string query = "SELECT userId, UserName FROM Users"; 
     SqlConnection conn = new SqlConnection("conn string"); 
     SqlCommand comd = new SqlCommand(query, conn); 
     conn.Open(); 
     using(SqlDataReader r = comd.ExecuteReader()) 
     { 
      while(r.Read()) 
      {     
      sb.AppendLine(r.GetInt32(0) + ", " + r.GetString(1));     
      } 
      conn.Close(); 
     } 
     textBox1.Text = sb.ToString(); 
} 

执行由塞汀期望指数刷新数据:

this.comboBox1.SelectedIndex = 0; 

它调用的SelectedIndexChanged envent和刷新用户的详细信息。

当然,你可以做得更有效率。

[编辑]

可以通过显示在连接到分贝DataGridView控件的详细视图更新数据库中的数据:在DataGridView中

SqlDataAdapter adapter = new SqlDataAdapter("select * from users", conn); 
DataSet ds = new DataSet(); 
adapter.Fill(ds); 
dataGridView1.DataSource = ds.Tables[0]; 

编辑数据和毕竟:

adapter.Update(ds); 

完成!

+0

我想编辑和更新从DetailsView数据库中的值..我该怎么做,与下拉无关我认为?.. – msbyuva 2010-11-19 21:28:47

+0

Anwer编辑 - 见[编辑]部分 – UGEEN 2010-11-19 22:01:51

+0

嗨,我有20列用户信息。所以,GridView中的这20个字段将会不太好,因为它将是一个水平行,它将跨越我的页面。对不起,如果我问一个愚蠢的问题,我可以在垂直显示Gridview记录像DetailsView? – msbyuva 2010-11-19 22:50:35

相关问题