繁体   English   中英

单击下拉列表中没有值字段或文本字段的选择时,如何从数据库显示标签/文本框上的其他列

[英]How to show other column on label/textbox from DB when click choose on dropdownlist without valuefield or textfield

假设我的表是tbl_AAA包含的列。

ID , Firstname , Lastname , Nickname ,tel

然后我SELECT * FROM tbl_AAA来绑定dropdownlist上的数据。 并设置

DataValueField = "ID" and  DataTextField = "Firstname"

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

在此处输入图片说明

您正在使用哪个版本的HTML?

在HTML 5中,使用以数据开头的自定义属性是完全有效的,例如

<div data-nickname="lol">< / div>

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

如果我是你,我将遵循基于脚本的方法。 您可以使其在服务器端自动生成,因此维护起来不会麻烦。

使下拉属性为isPostback =“ true”,然后添加以下方法

 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) {

        }
    }

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

  • 假设您的<--Choose Name--> -1 Name- <--Choose Name-->项目的索引为-1 ,则可以检查SelectedIndex是否为-1
  • 如果您选择的索引不是-1 ,则使用SqlCommand创建并进行SqlConnection ,并使用SELECT Nickname FROM tbl_AAA WHERE ID = @id ,然后使用参数化查询将您的下拉列表的SelectedValue放入此@id
  • 假设您的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;
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM