如何在HtmlInput控件中设置两个值

时间:2011-01-11 14:35:22

标签: c# asp.net binding controls

我在HtmlInputText的{​​{1}}中有EditItemTemplate,此控件与DataGrid

中的值绑定

我想在此控件中设置两个值SqlDataSourceJOB_CODE_ID,而不只是JOB_CODE

注意:我不想展示JOB_CODE,只是保存它以便稍后在代码中使用它。

我曾经在WinForms中使用JOB_CODE_ID来设置这样的值,但是在ASP.Net中我不知道类似的方式。

在我的情况下,我无法使用隐藏控件来保存Tag,有没有办法在JOB_CODE_ID控件中设置两个值?

代码:

HtmlInputText

提前致谢。

@A_Nablsi,编辑: JOB_CODE_ID将与单击输入时触发的JS函数中的输入值一起使用。

4 个答案:

答案 0 :(得分:1)

<击> 您可以使用隐藏字段:

<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属性。

答案 1 :(得分:1)

您可以在rowdatabound事件中保存控件名称中的其他值。

  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

答案 2 :(得分:1)

<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.
}

答案 3 :(得分:0)

您必须捕获DataGrid的ItemDatabound事件,并将这两个值格式化为文本框。您使用FindControl获取文本框,然后您可以连接值并将它们分配到Text属性。以下是代码项目中类似操作的链接:

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