Я создаю таблицу непосредственно из набора записей ADO, используя field.name и field.value. Как видно из другого предыдущего сообщения Retrieve ADO Recordset Field names (Classic ASP).
Сделав еще один шаг, я пытаюсь переименовать заголовки таблиц на основе значений из другой базы данных. По существу, если th = Column_1
, то напишите «Имя» и т. Д.Создать функцию с помощью ASP ASP.NET ASP.NET?
Я могу сделать это индивидуально с помощью функции «если есть» с определенным кодом. Тем не менее, у меня есть другая база данных, которая имеет все правильные названия заголовков и скорее будет использовать цикл while через набор записей. Вместо написания каждой строки - columnheading1 = x и columnheading2 = y и т. Д. Я предпочел бы создать цикл while.
Снова сингл "if then" работает нормально, как указано ниже в коде, но в наборе записей нет.
Я попытался исправить набор записей и цикл, но ничего хорошего. Любые идеи, почему цикл while (или область повтора) не будет работать в этой функции?
Ниже приведен пример:
<table>
<thead>
<tr>
<%
Function Header_Name_Sub(Header_NameX)
Header_Name_Write = Header_NameX
If Header_Name_Write = "Project_File_ID" Then
Header_Name_Write = "File ID" ' this works great.
End If
If Header_Name_Write = "Project_Assignment_Name" Then
Header_Name_Write = "Project Name" ' this works great.
End If
' Have a data base of all header names based on column name ... this repeat is not working in the function. If I pull it out this section works fine elsewhere in the page...
Do While Not RS_Build_Numeric_Names.EOF
If CStr(Header_Name_Write) = CStr((RS_Header.Fields.Item("True_Column_Name").Value)) Then ' thought maybe string issue is why CStr
Header_Name_Write = (RS_Build_Numeric_Names.Fields.Item("Fixed_Column_Name").Value
End If
Loop
If Header_Name_Write = "Project_City" Then
Header_Name_Write = "City" ' this works great.
End If
End Function
%>
<%For Each fld in RS.Fields%>
<%
Header_Name_Sub(fld.Name)
%>
<th><span><%=Header_Name_Write%></span></th>
<%Next %>
</tr>
</thead>
<tbody>
<%
Do Until RS.EOF
OutputRow RS.Fields
RS.MoveNext
Loop
%>
</tbody>
</table>
<%
Sub OutputRow(fields)
%>
<tr>
<%For Each fld in fields%>
<td><span><%=(fld.Value)%></span></td>
<%Next %>
</tr>
<%
End Sub
%>
Так вот редактировать в простой форме, я просто понял. Внутри функции ...
If Header_Name_Write = "Project_File_ID" Then
Header_Name_Write = "File ID" ' this works great.
End If
Работы великолепно выше. Я пытался использовать цикл while, чтобы написать 50+ дополнительных «If Then's», когда вместо этого он просто перебирался. Итак, как я могу написать в функции дополнительные?
If x = 1 Then Header_Name_Write = "File ID" End If
If x = 2 Then Header_Name_Write = "Next Header" End If
If x = 3 Then Header_Name_Write = "Another Header" End If
Действительно ли это для цикла?
Чуть дальше ...
For Each fld in RS_Build_Numeric_Names.Fields
If Header_Confirm = (RS_Build_Numeric_Names.Fields.Item("Build_Project_Metric_Column_Name").Value) Then
Header_Name_Write = (RS_Build_Numeric_Names.Fields.Item("Build_Project_Metric_Name").Value)
End If
Next
Если я использую для даного это делает работу для первой записи только в ... не записях всей петли.
Должен ли я использовать Server.CreateObject ("Scripting.Dictionary")? – Brewy