C# 将数据绑定到文本框

问题描述 投票:0回答:5

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

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

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

        txtBox1.DataSource = "DataSource";
        txtBox1.DataBind();
c# asp.net sql data-binding web-controls
5个回答
2
投票

原因是

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

要设置

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


1
投票

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

textBox1.Text= "MyText";

然后用户可以更改该值,并且在回发时您可以使用该值来满足您和用户的需要


0
投票

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

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

0
投票
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");

0
投票

如果在 GridView、DataGrid、ListView、DetailsView、FormView 等数据绑定控件的项目模板中使用 TextBox 控件,您可以根据所选数据源(如 sql、xml、object 等)使用 eval、bind、xpath。

例如,

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("TITLE")%>'> </asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("TITLE")%>'> </asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# XPath("TITLE")%>'> </asp:TextBox>

如果 TextBox 控件单独使用或在数据绑定控件之外使用,可以按以下格式使用。

<asp:TextBox ID="TextBox1" runat="server" Text='<%#TITLE%>'> </asp:TextBox>

在文件隐藏代码中,只需在任何页面生命周期事件中使用即可。

this.Page.Databind();

© www.soinside.com 2019 - 2024. All rights reserved.