У меня есть C# .net приложение, использующее Gridview
. У меня возникла проблема с попыткой определить, как выполнить эту задачу.Gridview - отображение числа строк на основе переменной
Мне нужен мой Gridview (on page_load
), чтобы отобразить количество строк на основе числа в переменной. Например, если мне нужен variable= 4
, мне нужно всего лишь 4 строки для отображения в моем gridview с текстовым полем поля шаблона. Я не хочу, чтобы какие-либо данные отображались, просто возможность для пользователя вводить свой адрес электронной почты в каждом текстовом поле. У меня есть 4 строки, но не templatefield
в каждой строке. Это мой код до сих пор.
.aspx
<asp:GridView ID="gvAddEmail" runat="server" Width="100%" CssClass="table table-striped table-bordered table-responsive" Caption="Enter Email" ShowFooter="true" AutoGenerateColumns="True" CellPadding="0">
<Columns>
<asp:TemplateField HeaderText="Email Address(s)" HeaderStyle-CssClass="visible-xs" ItemStyle-CssClass="visible-xs">
<ItemTemplate>
<%# Eval ("VisitorEmail") %>
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtVEmail" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:TemplateField>
</Columns>
<AlternatingRowStyle BackColor="#ccffcc" />
<EmptyDataTemplate>
<tr>
<th scope="col">Email</th>
</tr>
<tr>
<td>
<asp:TextBox ID="txtVEmail" runat="server"></asp:TextBox>
</td>
<!-- <td>
<asp:Button ID="btnSubmitVI" runat="server" Text="Submit Visitor Information" OnClick="InsertVisitorInfo" CommandName="EmptyDataTemplate" />
</td> -->
</tr>
</EmptyDataTemplate>
</asp:GridView>
код за
protected void Page_Load(object sender, EventArgs e) {
InitGrid();
if (!IsPostBack) {
PanelSignIn.Visible = false;
}
}
public class Data {
public string VisitorEmail {
get;
set;
}
}
private void InitGrid() {
int NumberOfRows = GetLocation();
Response.Write("Number of Rows that should display: " + NumberOfRows); //debugging
List <Data> InitialData = new List <Data>();
for (int i = 0; i < NumberOfRows; i++) {
InitialData.Add(new Data());
}
gvAddEmail.DataSource = InitialData;
gvAddEmail.DataBind();
}