сначала создайте файл jsp: и напишите текстовое поле, которое вы хотите для ex:
после этого создайте свой класс сервлета:
public class test{
protected void doGet(paramter , paramter){
String name = request.getparameter("name");
}
}
@Geoff
Такой оператор Eval был на самом деле добавлен в 2,0, но если производительностью является важная Оценка, должен избежаться, так как это использует Отражение.
Повторитель является довольно хорошим способом сделать его, хотя это могло бы быть быстрее для генерации таблицы в коде:
Страница ASPX:
<table class="report" id="bookTable" runat="server">
<tr>
<th>Published</th>
<th>Title</th>
<th>Author</th>
<th>Price</th>
</tr>
</table>
Код позади:
Protected Sub Page_Load( ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostback Then
BuildTable()
End If
End Sub
Private Sub BuildTable()
Dim db As New BookstoreDataContext
Dim bookCollection = from b in db.Books _
Order By b.Published _
Select b
Dim row As HtmlTableRow
Dim cell As HtmlTableCell
For Each book As Books In bookCollection
row = New HtmlTableRow()
cell = New HtmlTableCell With { .InnerText = b.Published.ToShortDateString }
row.Controls.Add(cell)
cell = New HtmlTableCell With { .InnerText = TryNbsp(HttpContext.Current.Server.HtmlEncode(b.Title)) }
row.Controls.Add(cell)
cell = New HtmlTableCell With { .InnerText = TryNbsp(HttpContext.Current.Server.HtmlEncode(b.Author))
row.Controls.Add(cell)
cell = New HtmlTableCell With { .InnerText = Format(b.Price, "c") }
row.Controls.Add(cell)
bookTable.Controls.Add(row)
Next
Я предполагаю, что это зависит от того, как важная скорость Вам. Для пользы простоты я думаю, что пошел бы с Повторителем.
Управление ListView, начатое с платформы 3.5, могло бы быть немного лучшим решением. Ваша разметка была бы похожа на это:
<asp:ListView runat="server" ID="ListView1"
DataSourceID="SqlDataSource1">
<LayoutTemplate>
<table runat="server" id="table1" runat="server" >
<tr runat="server" id="itemPlaceholder" ></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server>
<td runat="server">
<asp:Label ID="NameLabel" runat="server"
Text='<%#Eval("Name") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
Это - то, для чего GridView.
<asp:GridView runat="server" DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField HeaderText="Published" DataField="Published" />
<asp:BoundField HeaderText="Author" DataField="Author" />
</Columns>
</asp:GridView>
В.Net 3.0 + можно заменить ItemDataBound к asp:Literal путем выполнения чего-то вроде этого:
<ItemTemplate>
<tr>
<td><%# Eval("published") %></td>
...
где "опубликовано" название поля в данных, которые Вы связали с повторителем
Править: @Alassek: Я думаю, что хит производительности отражения часто переоценивается. Очевидно, необходимо сравнить производительности приложения, но хит Оценки, вероятно, измеряется в миллисекундах. Если Ваше приложение не служит многим параллельным хитам, это, вероятно, не проблема, и простота кода с помощью Оценки, наряду с ним являющийся хорошим разделением презентации, делает его хорошим решением.
Я использовал бы GridView (или DataGrid, если Вы используете более старую версию ASP.NET).
<asp:GridView ID="gvBooks" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Published" DataField="Published" />
<asp:BoundField HeaderText="Title" DataField="Title" />
<asp:BoundField HeaderText="Author" DataField="Author" />
<asp:BoundField HeaderText="Price" DataField="Price" />
</Columns>
</asp:GridView>
С некоторым кодом - позади:
Private Sub gvBooksRowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvBooks.RowDataBound
Select Case e.Row.RowType
Case DataControlRowType.DataRow
''' Your code here '''
End Select
End Sub
Можно связать его похожим способом. Событие RowDataBound - то, в чем Вы нуждаетесь.
Я соглашаюсь с Geoff, единственное время, которое мы используем Literals
то, если мы хотим сделать что-то другое с данными.
Например, мы могли бы хотеть a DueDate
поле для высказывания "Сегодня" или "Вчера" вместо фактической даты.
Если бы Вам не нужен ASP.NET обработанное редактирование cabilities, я избегал бы DataGrid и GridView... они обеспечивают ненужное чрезмерное увеличение размера.
ALassek записал:
… генерируют таблицу в коде …
Мне нравится вид этого! Это кажется Гораздо менее вероятным для создания исключения на этапе выполнения из-за изменения имени поля или опечатки.