2014-01-30 5 views
0

Я пытаюсь использовать поля данных в виде формы из кода. Если бы я сделать это на переднем конце, это было бы что-то вроде:DataBind From CodeBehind в FormView

<asp:TextBox id="txtField" runat="server" text='<%# Bind("col_name") %>' /> 

и col_name будет присутствовать в некоторых и обновления команд SqlDataSource, связанного с родительским FormView, что текстовое поле находится в

.

Поскольку форма генерируется динамически в коде, я не могу использовать синтаксис <% # Bind()%>. Как связать текстовое поле с кодом? Если я не могу, то что лучше для этого?

ответ

1

Вы можете просто использовать Databinder.Eval в коде позади.

Me.txtRun.Text = DataBinder.Eval(ObjectOnPage, "PROPERTYNAME") 

Если вы делаете это в dgData_RowDataBound Gridview метод можно использовать e.Row.DataItem

Protected Sub dgData_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles dgData.RowDataBound 
    If e.Row.RowType = DataControlRowType.DataRow Then 
     DirectCast(e.Row.FindControl("txtControl"), TextBox).Text = DataBinder.Eval(e.Row.DataItem, "Property") 
    End If 
End Sub 

Более подробную информацию можно найти в следующей ссылке:

DataBinder.Eval Method (Object, String)

Надеюсь, это поможет.

+0

Это позволит только одностороннюю связь (т.е. Eval() not Bind()), однако, поскольку я давно искал Google и не нашел лучшего подхода, я пришел к выводу, что то, что я хочу, возможное. Вперед, я откажусь от подхода sqlDataSource и просто подключу его вручную в коде. – Lobe

+1

А я вижу, я не знал, что вам нужна двусторонняя привязка :) Я также нашел ссылку с некоторой информацией по этому вопросу: http://weblogs.asp.net/leftslipper/archive/2007/06/29/how -Asp-нетто-Databinding-предложения-с-Eval-и-Bind-statements.aspx – SoroTrestal

Смежные вопросы