我在HtmlInputText
的{{1}}中有EditItemTemplate
,此控件与DataGrid
我想在此控件中设置两个值SqlDataSource
和JOB_CODE_ID
,而不只是JOB_CODE
。
注意:我不想展示JOB_CODE
,只是保存它以便稍后在代码中使用它。
我曾经在WinForms中使用JOB_CODE_ID
来设置这样的值,但是在ASP.Net中我不知道类似的方式。
在我的情况下,我无法使用隐藏控件来保存Tag
,有没有办法在JOB_CODE_ID
控件中设置两个值?
代码:
HtmlInputText
提前致谢。
@A_Nablsi,编辑: JOB_CODE_ID将与单击输入时触发的JS函数中的输入值一起使用。
答案 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属性。以下是代码项目中类似操作的链接: