0

我在 gridview 的页脚中有一个名为 ASPxTextBox1 的文本框。我在代码隐藏中得到文本框:

 var tbox = (DevExpress.Web.ASPxEditors.ASPxTextBox)grdCommunication.FindFooterCellTemplateControl(grdCommunication.Columns[3],"ASPxTextBox1");

文本框不为空,所以我掌握了它。尽管如此, tbox.Text 始终为空(“”)。任何想法?

这是aspx,以防万一:

    <dx:ASPxGridView ID="grdCommunication" runat="server" DataSourceID="CommunicationSQLDataSource" Settings-ShowFooter="True"  OnRowInserting="grdCommunication_RowInserting"  AutoGenerateColumns="False" Width="500px">
    <Columns>
        <dx:GridViewCommandColumn VisibleIndex="0">
        </dx:GridViewCommandColumn>
        <dx:GridViewDataDateColumn FieldName="Date" VisibleIndex="1">
        </dx:GridViewDataDateColumn>
        <dx:GridViewDataTextColumn FieldName="UserName" VisibleIndex="2"></dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="Message" VisibleIndex="3">
            <FooterTemplate>
                <dx:ASPxTextBox ID="ASPxTextBox1" runat="server" Height="32px" Width="169px"></dx:ASPxTextBox>
                <dx:ASPxButton ID="ASPxButton1" runat="server" Height="19px" Text="ASPxButton" Width="255px" CommandName="Insert" OnClick="ASPxButton1_Click1"></dx:ASPxButton>
            </FooterTemplate>
        </dx:GridViewDataTextColumn>
    </Columns>
    <Settings ShowColumnHeaders="False"></Settings>
</dx:ASPxGridView>

Page_Load:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!User.Identity.IsAuthenticated)
        {
            Response.Redirect("~/Account/Login.aspx?ReturnUrl=" + HttpContext.Current.Request.Url.AbsolutePath);
        }
        else
        {
            activeuserID = Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString();
        }

        pid = "05811de5-6345-4806-b489-154576c69e6d";
        CommunicationSQLDataSource.SelectParameters["ProjectID"].DefaultValue = pid;
        grdCommunication.DataBind();

    }
4

1 回答 1

3

似乎该值正在丢失,因为您在每次页面加载时都重新绑定了网格,因此使以前的数据无效。尝试将 DataBind 语句包装在 Page.IsPostback 检查中,如下所示:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        grdCommunication.DataBind();
    }
}
于 2013-11-11T12:53:07.063 回答