如果在没有valuefield或textfield的下拉列表中单击选择,如何在DB上显示标签/文本框上的其他列

时间:2015-12-11 11:50:42

标签: c# asp.net sql-server vb.net visual-studio-2013

假设我的表格tbl_AAA包含列。

ID , Firstname , Lastname , Nickname ,tel

然后我SELECT * FROM tbl_AAA绑定下拉列表中的数据。 并设置

DataValueField = "ID" and  DataTextField = "Firstname"

当我点击下拉列表中的任何内容时,我需要显示数据库中的其他列,例如

enter image description here

3 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的HTML?

在HTML 5中,以数据为前缀的自定义属性完全有效,例如

<div data-nickname="lol">< / DIV&GT;

在XHTML中,这不是真正有效的。如果您处于XHTML 1.1模式,浏览器可能会抱怨它,但在1.0模式下,大多数浏览器都会默默地忽略它。

如果我是你,我会遵循基于脚本的方法。你可以在服务器端自动生成它,这样就不会让后面的人感到痛苦。

答案 1 :(得分:0)

make dropdown属性isPostback =&#34; true&#34;然后添加以下方法

 protected void dropdown_SelectedIndexChanged(object sender, System.EventArgs e)
    {
        try {
              if (dropdown.SelectedIndex != 0) {
            SqlStr = "Select Nickname  From tbl_AAA  where ID =@ID";
           //Execute above query and result text assign to label/textbox
            SqlConnection connection = new          SqlConnection("Server=ServerNAme;Initial Catalog=DBName; User ID=sa;Password=Password;");
               SqlCommand command = new SqlCommand(SqlStr, connection);

command.Parameters.AddWithValue("@ID", Conversion.Val(dropdown.SelectedValue));

lbl.text = cmd.ExecuteScalar().toString();
            }
        } catch (Exception ex) {

        }
    }

答案 2 :(得分:0)

您可以将SelectedIndexChanged eventAutoPostBack = true一起使用。这是您的以下路径;

  • 假设您的<--Choose Name-->项已被-1编入索引,您可以检查SelectedIndex是否-1
  • 如果您选择的索引不是-1,请使用SqlConnection创建并SqlCommand并使用SELECT Nickname FROM tbl_AAA WHERE ID = @id并将您的下拉列表SelectedValue添加到此@id 1}}与parameterized query
  • 假设您的ID在您的桌面上具有鲜明的价值,使用ExecuteScalar执行您的查询,并将Nickname作为object投降是string并将此字符串分配给此标签Text属性。

作为一个例子;

void DropDownlist1_SelectedIndexChanged(Object sender, EventArgs e)
{
   if(DropDownlist1.SelectedIndex != -1)
   {
       using(var con = new SqlConnection(conString))
       using(var cmd = con.CreateCommand())
       {
             cmd.CommandText = "SELECT Nickname FROM tbl_AAA WHERE ID = @id";
             cmd.Paramerters.Add("@id", SqlDbType.Int)
                            .Value = int.Parse(DropDownlist1.SelectedValue);
             con.Open();
             Label1.Text = (string)cmd.ExecuteScalar();
       }
   }
   else
   {
       Label1.Text = string.Empty;
   }
}