我一直在努力奋斗几个小时,似乎无法在网上找到答案。我在网上发现的一些实践没有完成这项工作所以我想我做错了。
我创建了一个Table对象,放置了几个我放置TableCell的TableRow对象。该表的一列包含我创建的TextBox对象:
Table productTable = new Table();
int j = 0;
foreach (Product i in prodList)
{
TextBox qttyTB = new TextBox();
qttyTB.ID = "Quantity" + Convert.ToString(j);
qttyTB.Style["width"] = "30px";
qttyTB.Text = "0";
TableRow tableR = new TableRow();
TableCell tableC1 = new TableCell();
tableC1.Text = "<img src='" + i.ImagePath + "' class='ProductImage'/>";
tableR.Controls.Add(tableC1);
TableCell tableC2 = new TableCell();
tableC2.Text = i.Name + " ";
tableR.Controls.Add(tableC2);
TableCell tableC3 = new TableCell();
tableC3.Text = i.Price + " ₪ ";
tableR.Controls.Add(tableC3);
TableCell tableC4 = new TableCell();
tableC4.Controls.Add(tbArray[j - 1]);
tableR.Controls.Add(tableC4);
productTable.Controls.Add(tableR);
j++;
}
TablePH.Controls.Add(productTable);
页面输出100%。现在,按下一个按钮,我试图保留我创建的TextBox对象的值。尝试了几件事。
答案 0 :(得分:0)
在CodeBehind中填充表格通常是一种不好的做法,应该避免,因为您正在分离查看和业务逻辑问题。
如果要从数据库中检索产品,则需要在.aspx文件中放置类似的内容。如果不是SQL,那么您可以通过Google搜索找到其他数据源。
<asp:SqlDataSource ID="SelectItemsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:hubConnectionString %>"
ProviderName="<%$ ConnectionStrings:hubConnectionString.ProviderName %>"
SelectCommand="SELECT itemEntity.id, itemEntity.name, itemEntity.filename, itemEntity.type, itemEntity.added, userEntity.name FROM item AS itemEntity
LEFT OUTER JOIN USER AS userEntity ON itemEntity.uploader = userEntity.id WHERE itemEntity.type like @type ORDER BY itemEntity.added DESC"
OnSelecting="onItemSelecting">
<SelectParameters>
<asp:Parameter Name="@type" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
然后在您定义表的位置添加不同类型的字段,具体取决于您的需要。注意:由&lt;%#x%&gt;包围的属性值正在调用代码隐藏中的函数。
<asp:GridView ID="ItemGrid" runat="server" DataSourceID="SelectItemsDataSource" class="itemGrid"
AutoGenerateColumns="False" AllowPaging="True" AllowSorting="True"
CellPadding="4" ForeColor="#333333" GridLines="None">
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:TemplateField HeaderText="File type">
<ItemTemplate>
<asp:Image runat="server" ID="mediaImage"
ImageUrl='<%# GetImageUrl(Eval("type") as string) %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Preview">
<ItemTemplate>
<a runat="server" id="mediaPreview" href='<%# GetPreviewUrl(Eval("id").ToString()) %>'>Play</a>
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataTextField="name" DataNavigateUrlFields="id" DataNavigateUrlFormatString="Download.aspx?FileID={0}" HeaderText="Name"/>
<asp:BoundField HeaderText="Uploaded date"
DataField="added" DataFormatString="{0:d MMMM, yyyy}" SortExpression="added">
</asp:BoundField>
<asp:BoundField HeaderText="Uploaded by"
DataField="name1" SortExpression="name1">
</asp:BoundField>
</Columns>
</asp:GridView>