【问题标题】:C# Binding Data to Text BoxC# 将数据绑定到文本框
【发布时间】:2013-02-07 12:37:50
【问题描述】:

我正在尝试将数据库行绑定到 C# 中的文本框,因此它是默认值(但仍然可以编辑文本框)。

我遇到的当前问题是文本框不允许我附加错误的数据源(System.Web.UI.WebControls.TextBox 不包含“DataSource”的定义......)

我能够成功地将数据源绑定到下拉列表,但对文本框使用相同的代码不起作用。

        txtBox1.DataSource = "DataSource";
        txtBox1.DataBind();

【问题讨论】:

  • 将数据源中的值分配给文本框不是更容易吗?无论如何,文本框只能表示 1 行/列数据。然后,您可以在保存时将文本框的值应用回数据源。如果没有更多关于您尝试做什么/如何做的背景,很难确定如何最好地实现这一目标。
  • 数据表“DataSource”到底是什么?
  • 请添加标签 WebControls(或其他东西),这样像我这样的人就不会抱有希望了 - 那是关于 Winforms :)

标签: c# asp.net sql data-binding web-controls


【解决方案1】:

原因是DataSource 包含多行。下拉菜单可以支持这一点,因为它将每行显示一个条目,但 TextBox 不支持它。只有一个文本字段,应该使用数据源中的哪一行?

要设置TextBox 的文本,请使用Text 属性。

【讨论】:

    【解决方案2】:

    如果你想为文本框设置一个值,你需要做的是:

    textBox1.Text= "MyText";
    

    然后用户可以更改该值,并在回发时将该值用于您需要的任何内容和用户

    【讨论】:

      【解决方案3】:

      您不能将 DataSource 绑定到 WebForms 中的 TextBox。您可以使用索引器将文本设置为 DataRow 中的字段。

      `txtBox1.Text = datarow["SomeField"]`
      

      【讨论】:

        【解决方案4】:
        DataView dv = DataSource.DefaultView;
        
        dv.RowFilter = "id=1"; // or whatever as per your need to make sure only 1 row is there
        textBox1.DataBindings.Add("Text",dv,"id");
        

        【讨论】:

          猜你喜欢
          • 2010-12-02
          • 1970-01-01
          • 2011-04-23
          • 1970-01-01
          • 2010-12-18
          • 1970-01-01
          • 2013-06-21
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多