Sitefinity RadGrid无法在后端页面中工作

时间:2011-09-29 10:05:21

标签: asp.net sitefinity sitefinity-4

我在sitefinity页面上有一个RadGrid,我用它来创建一个模块来在后端的数据库表上表示CRUD。

如果我将RadGrid放在aspx页面上并在浏览器中查看,它工作正常,但是当我将它添加到站点后端页面时,只有刷新和删除工作,添加和更新不保存到数据库

如果与RadGrid Ajax冲突,我只能在sitefinity后端中假设某些东西

这是我的代码:

    <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="newsArticleAdmin.ascx.cs" Inherits="SitefinityWebApp.Modules.newsArticles.admin.newsArticleAdmin" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<div style="clear:both;"></div>
<div id="adminContents">

<h2>News Articles</h2>
<p>These articles appear on the home page</p>
<br />


<telerik:RadScriptManager ID="RadScriptManager1" Runat="server">
</telerik:RadScriptManager>


<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
    <AjaxSettings>
        <telerik:AjaxSetting AjaxControlID="RadGrid1">
            <UpdatedControls>
                <telerik:AjaxUpdatedControl ControlID="RadGrid1" />

                <telerik:AjaxUpdatedControl ControlID="SqlDataSource1" />

            </UpdatedControls>
        </telerik:AjaxSetting>
    </AjaxSettings>
</telerik:RadAjaxManager>


    <telerik:RadGrid ID="RadGrid1" runat="server" AllowAutomaticDeletes="True"
        AllowAutomaticInserts="True" AllowAutomaticUpdates="True"
        AutoGenerateDeleteColumn="True" AutoGenerateEditColumn="True" CellSpacing="0"
        DataSourceID="SqlDataSource1" GridLines="None" Skin="Telerik">


<MasterTableView AutoGenerateColumns="False" CommandItemDisplay="TopAndBottom"
            DataKeyNames="fld_blogPostId" DataSourceID="SqlDataSource1"
            EditMode="InPlace">
<CommandItemSettings ExportToPdfText="Export to PDF"
        AddNewRecordText="Add new article"></CommandItemSettings>

<RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
</RowIndicatorColumn>

<ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
</ExpandCollapseColumn>

    <Columns>
        <telerik:GridBoundColumn DataField="fld_blogPostId" DataType="System.Int32"
            FilterControlAltText="Filter fld_blogPostId column" HeaderText="fld_blogPostId"
            ReadOnly="True" SortExpression="fld_blogPostId" UniqueName="fld_blogPostId">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="fld_blogTitle"
            FilterControlAltText="Filter fld_blogTitle column" HeaderText="fld_blogTitle"
            SortExpression="fld_blogTitle" UniqueName="fld_blogTitle">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="fld_blogContents"
            FilterControlAltText="Filter fld_blogContents column"
            HeaderText="fld_blogContents" SortExpression="fld_blogContents"
            UniqueName="fld_blogContents">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="fld_blogDate"
            FilterControlAltText="Filter fld_blogDate column" HeaderText="fld_blogDate"
            SortExpression="fld_blogDate" UniqueName="fld_blogDate">
        </telerik:GridBoundColumn>
        <telerik:GridBoundColumn DataField="fld_blogImage"
            FilterControlAltText="Filter fld_blogImage column" HeaderText="fld_blogImage"
            SortExpression="fld_blogImage" UniqueName="fld_blogImage">
        </telerik:GridBoundColumn>
    </Columns>

<EditFormSettings>
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn>
</EditFormSettings>
</MasterTableView>

        <StatusBarSettings LoadingText="Loading articles..."
            ReadyText="Articles ready" />

<FilterMenu EnableImageSprites="False"></FilterMenu>

<HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"></HeaderContextMenu>
    </telerik:RadGrid>


    <asp:SqlDataSource ID="SqlDataSource1" runat="server"
        ConnectionString="<%$ ConnectionStrings:NewsArticlesConnectionString %>"
        DeleteCommand="DELETE FROM [tbl_newsArticles] WHERE [fld_blogPostId] = @fld_blogPostId"
        InsertCommand="INSERT INTO [tbl_newsArticles] ([fld_blogTitle], [fld_blogContents], [fld_blogDate],
[fld_blogImage]) VALUES(@fld_blogTitle, @fld_blogContents, @fld_blogDate, @fld_blogImage)"
        SelectCommand="SELECT * FROM tbl_newsArticles"
        UpdateCommand="UPDATE [tbl_newsArticles] SET [fld_blogTitle] = @fld_blogTitle, [fld_blogContents] = @fld_blogContents,
[fld_blogDate] = @fld_blogDate, [fld_blogImage] = @fld_blogImage WHERE fld_blogPostId = @fld_blogPostId">
        <DeleteParameters>
            <asp:Parameter Name="fld_blogPostId" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="fld_blogTitle" />
            <asp:Parameter Name="fld_blogContents" />
            <asp:Parameter Name="fld_blogDate" />
            <asp:Parameter Name="fld_blogImage" />
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="fld_blogTitle" />
            <asp:Parameter Name="fld_blogContents" />
            <asp:Parameter Name="fld_blogDate" />
            <asp:Parameter Name="fld_blogImage" />
            <asp:Parameter Name="fld_blogPostId" />
        </UpdateParameters>
    </asp:SqlDataSource>


</div>

以前见过这个并且知道修复的人?

干杯

安德鲁 @ atmd83

1 个答案:

答案 0 :(得分:3)

尝试在后端页面编辑器中打开页面,并确保“启用视图状态”设置为true。默认情况下,Sitefinity中的后端页面通常设置为禁用,因为大多数后端使用AJAX。

希望这有用!