保留TextBox控件的值我在C#中以编程方式创建

时间:2012-12-09 16:58:24

标签: c# asp.net textbox return-value

我一直在努力奋斗几个小时,似乎无法在网上找到答案。我在网上发现的一些实践没有完成这项工作所以我想我做错了。

我创建了一个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 + "&nbsp;&nbsp;&nbsp;&nbsp;";
            tableR.Controls.Add(tableC2);
            TableCell tableC3 = new TableCell();
            tableC3.Text = i.Price + "&nbsp;&#8362;&nbsp;&nbsp;&nbsp;&nbsp;";
            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对象的值。尝试了几件事。

1 个答案:

答案 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>
相关问题