转发器项目内的TextBox为空

时间:2011-05-26 08:39:18

标签: c# asp.net

转发器模板:

<ItemTemplate>          
                <div style="width:100%">
                    <asp:Label style="display:none" ID="ArticleID" runat="server" text='<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>'></asp:Label>
                    <asp:TextBox ID="ArticleOrder" runat="server"  Width="20px" value='<%# DataBinder.Eval(Container.DataItem, "Order") %>'></asp:TextBox> 
                    &nbsp;
                    <a title="Edit Article"  href="javascript:void(0)" onclick="parent.document.location.href='/cms/Secured/Article/EditArticle.aspx?ArticleID=<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>'"><%# DataBinder.Eval(Container.DataItem, "Title") %> </a>
                    &nbsp;
                    <asp:LinkButton  id="delll" runat="server"   OnCommand ="Del" CommandName ='<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>'>(Delete)</asp:LinkButton>

                    <a   href="javascript:void(0)" onclick="window.open('CategoryArticleLocationReplace.aspx?Action=update&CategoryID=<%# Request.QueryString["CategoryID"].ToString()%>&LocationID=<%# Request.QueryString["LocationID"].ToString()%>&OldArticleID=<%# DataBinder.Eval(Container.DataItem, "ArticleID") %>',null, 'height=200,width=200,status=no,toolbar=no' )">(Replace Article)</a>
                    &nbsp;

                </div>

            </ItemTemplate> 

数据库更新代码:

protected void up_Click1(object sender, EventArgs e)
{
    foreach(RepeaterItem _item in rptArticleList.Items)
    {
        dcLigdol DB = new dcLigdol();
        TextBox tbArticleOrder = (TextBox)_item.FindControl("ArticleOrder");
        Label lblArticleID = (Label)_item.FindControl("ArticleID");
        byte ArticleOrder;
        if(tbArticleOrder.Text.Trim() == "")
            ArticleOrder = byte.Parse("99");
        else
            ArticleOrder = byte.Parse(tbArticleOrder.Text.Trim());
        int ArticleID = int.Parse(lblArticleID.Text.Trim());
        int CategoryID = int.Parse(Request.QueryString["CategoryID"].ToString().Trim());
        byte LocationID = byte.Parse(Request.QueryString["LocationID"].ToString().Trim());
        DB.spCategory_Article_Location_Order_Update(ArticleID, ArticleOrder, CategoryID, LocationID);

    }
    Show();
}

如果我在循环中放置一个制动点,我会得到一个tbArticleOrder.Text =&#34;&#34;每一次。 我无法弄清楚为什么这不起作用。 谢谢!

1 个答案:

答案 0 :(得分:5)

确保您没有在Page PostBack上重新绑定转发器。

将初始代码粘贴在!Page.IsPostBack条件下绑定转发器:)