Member 12324523 Ответов: 1

Как скрыть заголовки таблиц и отобразить заголовки и прокрутку только в том случае, если выбранная дата содержит данные


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

<tr>
<td align="center">         
            <label for="fileName">Select Date: </label>
             <input id="datepicker" name="pickedDate"/> <br/>
</td>
            </tr>
            <tr>
                <td align="center">
  <INPUT TYPE="SUBMIT" VALUE="Get Uploaded Data">
    <INPUT TYPE="RESET"> 
</td>
</tr>
<div style="overflow:scroll;height:500px;width:450%;overflow:auto">
<table border="1" style="width:100%">
<tr><th>Id</th><th>Name</th><th>FirstName</th><th>LastName</th><th>Password</th><th>Status</th></tr>
<% 
Connection conn=null;
SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser("");
ds.setPassword("");
ds.setServerName("");
ds.setDatabaseName("");              
conn = ds.getConnection();
int sumcount=0;
Statement st;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String Date = request.getParameter("pickedDate");
String query = "select Id,Name,PinNo,FirstName,LastName,Password,Status from Users where UploadedDate='" + Date + "'";
st = conn.createStatement();
ResultSet rs = st.executeQuery(query);
%>
<%
while(rs.next()){
%>
<tr><td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getDate(4)%></td>
<td><%=rs.getString(5)%></td>
<td><%=rs.getString(6)%></td>
<td><%=rs.getString(7)%></td>
<td><input type="button" name="edit" value="Edit" style="background-color:green;font-weight:bold;color:white;" onclick="editRecord(<%=rs.getString(1)%>);" ></td>
</tr>
<%
}
%>
<%
}
catch(Exception e){
e.printStackTrace();
}
%>
</table>
</div>


Что я уже пробовал:

Я попытался, поместив код в
while(rs.next()){<tr><th>Id</th><th>Name</th><th>FirstName</th><th>LastName</th><th>Password</th><th>Status</th></tr>}

но заголовки отображаются для каждой записи это означает что если есть 10 строк то одни и те же заголовки повторяются 10 раз но я должен получить заголовки только один раз

1 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

Это происходит потому, что вы печатаете заголовки таблицы еще до того, как проверяете данные. Что можно легко исправить, если сначала проверить данные, а затем распечатать HTML-документ.

<table border="1" style="width:100%">
<tr><th>Id</th><th>Name</th><th>FirstName</th><th>LastName</th><th>Password</th><th>Status</th></tr>

Вам также нужно внести этот раздел в код, и вам нужно проверить, есть ли запись, а затем распечатать ее.
// Load the connection, read the data and check if there is data in the cursor
if(dataFound) {
<tr>
   <th>Id</th>
   <th>Name</th>
   <th>FirstName</th>
   <th>LastName</th>
   <th>Password</th>
   <th>Status</th>

   while (rs.next()) {
      // Append the rows here
   }
</tr>
} else {
   // Nothing found. 
   <p>No records found.</p>
}

Таким образом, вы будете проверять, существуют ли данные, и если да, то вы напечатаете заголовки, иначе вы пропустите их и покажете абзац, в котором говорится, что данных нет.

Редактировать

Я просто держал вещи простыми, и в соответствии с вашим кодом, потому что rs.next() будет использоваться для проверки, есть ли запись или нет, так что, возможно, потребуется позвонить еще до того, как if(dataFound) вещь. Итак, внесите соответствующие изменения, пожалуйста, чтобы этот код мог работать, логика будет такой же.

1. Запрос для сведения
2. Проверьте, существуют ли данные
3. Создать таблицу и заполнить данными
4. Если нет, покажите абзац или все, что вам нужно.

Это и есть поток. :-)


Afzaal Ahmad Zeeshan

Я уже упоминал об этом dataFound это переменная, которую вы должны определить. После этого это сработает.