2011-01-11 39 views
1

我在DataGrid有一个EditItemTemplateHtmlInputText,该控件绑定从SqlDataSource我怎样才能在HtmlInput控制设置两个值

值我想在此控制设置两个值JOB_CODE_ID和而不仅仅是JOB_CODE

注意:我不想显示JOB_CODE_ID,只是保存它以便稍后在代码后面使用它。

我以前在WinForms中使用Tag来设置这样的值,但在我不知道类似ASP.Net的方式。

在我的情况下,我不能使用隐藏的控件来保存JOB_CODE_ID那里,有没有什么办法可以在HtmlInputText控件中设置两个值?

代码:

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

在此先感谢。

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

+0

的ID在文本框的ID? – Drahcir 2011-01-11 14:38:35

+0

@Drahcir:谢谢我编辑了这个问题,在我的数据源中没有任何价值。 – Homam 2011-01-11 14:39:04

+0

你想输出JOB_CODE_ID吗?如果没有,您可以将其保存在文本框的ID或名称 – Drahcir 2011-01-11 14:44:20

回答

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属性,就像任何其他的属性。

0

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

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

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