0

グリッドビューのフッターに ASPxTextBox1 という名前のテキスト ボックスがあります。コードビハインドでテキストボックスを取得します:

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

テキストボックスはnullではないので、手元にあります。それでも、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

ページの読み込みごとにグリッドを再バインドしているため、値が失われ、以前のデータが無効になっているようです。次のように、Page.IsPostback チェックで DataBind ステートメントをラップしてみてください。

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