【问题标题】:How to show other column on label/textbox from DB when click choose on dropdownlist without valuefield or textfield当单击选择没有值字段或文本字段的下拉列表时,如何在 DB 的标签/文本框上显示其他列
【发布时间】:2015-12-11 11:50:42
【问题描述】:

假设我的表是 tbl_AAA 包含列。

ID , Firstname , Lastname , Nickname ,tel

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

DataValueField = "ID" and  DataTextField = "Firstname"

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

【问题讨论】:

  • 只显示你的整个代码来填写dropdownlist

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


【解决方案1】:

使下拉属性 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) {

        }
    }

【讨论】:

  • //执行上述查询并将结果文本分配给标签/文本框。 label.txt / textbox.txt 在哪里?
  • 您想显示结果而不是“在此处显示昵称”,因此“在此处显示昵称”是您的标签...在下拉列表附近取一个标签并在该标签中显示结果
  • 我知道并且我在下拉菜单附近有标签。但是您的代码中没有一些 lbl.text 放入您的代码
【解决方案2】:

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

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

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

在 XHTML 中,这实际上是无效的。如果您在 XHTML 1.1 模式下,浏览器可能会抱怨它,但在 1.0 模式下,大多数浏览器会默默地忽略它。

如果我是你,我会遵循基于脚本的方法。你可以让它在服务器端自动生成,这样维护起来就不会很麻烦了。

【讨论】:

    【解决方案3】:

    您可以为此使用SelectedIndexChanged eventAutoPostBack = true。这是您的以下路径;

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

    【讨论】:

    • conString 未声明!如何声明conString
    • @bogey020 这是您到该数据库的连接字符串。
    • 输入字符串格式不正确@Soner Gönül
    猜你喜欢
    • 1970-01-01
    • 2018-08-27
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多