Как я могу установить два значения в элементе управления HtmlInput - PullRequest
1 голос
/ 11 января 2011

У меня есть HtmlInputText в EditItemTemplate в DataGrid, этот элемент управления связан со значением из SqlDataSource

Я хочу установить в этом элементе управления два значения JOB_CODE_ID и JOB_CODE вместо JOB_CODE.

Примечание : я не хочу показывать JOB_CODE_ID, просто сохраните его, чтобы использовать его позже в коде позади.

Я использовал для использования Tag вWinForms для установки таких значений, но я не знаю аналогичного способа в ASP.Net.

В моей ситуации я не могу использовать скрытый элемент управления для сохранения JOB_CODE_ID там, есть лиспособ установить два значения в элементе управления HtmlInputText?

Код:

<input type="text" ID="JOB_CODETextBox" runat="server" 
                                        value='<%# Bind("JOB_CODE") %>' />

Заранее спасибо.

@ A_Nablsi, Edit: будет использоваться JOB_CODE_IDвместе с входным значением в функции JS, срабатывающим при нажатии на вход.

Ответы [ 4 ]

1 голос
/ 20 января 2011
<input type="text" ID="JOB_CODETextBox" runat="server" value='<%# Bind("JOB_CODE") %>' 
onclick='<%# "YourJSFunction(this," + Eval("JOB_CODE_ID") + ")" %>' />

Ваша функция js должна выглядеть как

function YourFuncName(sender, args){
// the args contains the id you need.
}
1 голос
/ 11 января 2011

Вы можете сохранить другое значение в имени элемента управления в событии привязки строки.

  Private Sub gvJOB_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvJOB.RowDataBound
     If Not (e.Row.RowType = DataControlRowType.DataRow) OrElse (e.Row.Cells(0) Is Nothing) Then
       Return
    End If
    Dim dr As DataRowView = CType(e.Row.DataItem, DataRowView)
    Dim JOB_CODETextBox As HtmlInputText = CType(e.Row.FindControl("JOB_CODETextBox "), HtmlInputText)
        JOB_CODETextBox.name = dr("JOB_CODE_ID")
 End Sub
1 голос
/ 11 января 2011

Вы можете использовать скрытое поле:

<input type="hidden" value="<%# Bind("JOB_CODE_ID") %>" id="JOB_CODE_ID" />

Если вы хотите добавить дополнительные данные в существующий тег, вы можете использовать теги данных Html5. Они также работают в старых браузерах:

<input type="text" ID="JOB_CODETextBox" runat="server" value='<%# Bind("JOB_CODE") %>' data-id='<%# Bind("JOB_CODE_ID") %>' />

Вы можете получить доступ к атрибуту data-id, как и к любому другому атрибуту.

0 голосов
/ 11 января 2011

Необходимо перехватить событие ItemDridound DataGrid и отформатировать два значения вместе в текстовое поле. Вы используете FindControl, чтобы получить Textbox, затем вы можете объединить значения и назначить их в свойстве Text. Вот ссылка на аналогичную операцию в Code Project:

http://www.codeproject.com/KB/webforms/ItemCreated.aspx

...