Код за командой обновления в RadGrid Telerik (справка) - PullRequest
0 голосов
/ 24 июля 2010

Приветствую всех

Я новичок в asp.net и сейчас использую RadControls для Asp.net Ajax.Я пытался следовать Asp.Net GridDemo - Вставить / Обновить / Удалить, и, похоже, у меня не все хорошо работает, поэтому я сделал несколько изменений и оказался как-то хорошо, но кнопка обновления все еще не работает ...

У меня есть эти 2 таблицы tblUser и tblRole

В моей Radgrid я только хотел отобразить user_id , last_name и first_name из моей tblUser и роли из моей tblRole

И в моей форме редактирования Единственная редактируемая область - это фамилия, имя и имяно когда я нажимаю кнопку обновления, она не работает .. -_-,

Я уже согласен с дизайном, единственная проблема в том, что моя кнопка обновления не работает ..

Вот мой код

TeacherRole.aspx

 <telerik:RadGrid ID="RadGrid1" runat="server" AllowFilteringByColumn="True" 
        AllowPaging="True" AllowSorting="True" 
        AutoGenerateEditColumn="True" DataSourceID="SqlDataSource1" GridLines="None" 
        Skin="Black" DataKeyNames="user_id" EditMode="PopUp" 
        AllowAutomaticUpdates="True" ShowGroupPanel="True" GroupPanel-ID = "RadAjaxLoadingPanel1">

        <MasterTableView EditMode="PopUp" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" DataKeyNames = "user_id">
            <Columns>
                <telerik:GridBoundColumn DataField="user_id" DataType="System.Int32" 
                    HeaderText="User ID" SortExpression="user_id" UniqueName="user_id">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="last_name" HeaderText="Last Name" 
                    SortExpression="last_name" UniqueName="last_name">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="first_name" HeaderText="First Name" 
                    SortExpression="first_name" UniqueName="first_name">
                </telerik:GridBoundColumn>
                <telerik:GridBoundColumn DataField="role" 
                    HeaderText="Role" SortExpression="role" UniqueName="role">
                </telerik:GridBoundColumn>
            </Columns>
            <EditFormSettings InsertCaption="Add new item" CaptionFormatString="Edit User ID: {0}" 
                CaptionDataField="user_id" EditFormType="Template" PopUpSettings-Modal="True" PopUpSettings-ScrollBars="Auto">
                <FormTemplate>
                    <table id="Table1" cellspacing="1" cellpadding="1" width="250" border="0">
                            <tr>
                                <td>
                                    User ID:
                                </td>
                                <td>
                                    <asp:label id="Message1" runat="server" text='<%# Bind( "user_id" ) %>'/>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    Last Name:
                                </td>
                                <td>
                                    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind( "last_name" ) %>'>
                                    </asp:TextBox>
                                </td>
                            </tr>
                            <tr>
                                <td>
                                    First Name:
                                </td>
                                <td>
                                    <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind( "first_name") %>' TabIndex="1">
                                    </asp:TextBox>
                                </td>
                            </tr>

                            <tr>
                                <td>
                                    Role:
                                </td>
                                <td>
                                    <asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Bind("role") %>'
                                        DataSource='<%# (new string() { "Admin", "Teacher", "Student"}) %>' TabIndex="7"
                                        AppendDataBoundItems="True">
                                        <asp:ListItem Selected="True" Text="Select" Value=""></asp:ListItem>
                                    </asp:DropDownList>
                                </td>
                            </tr>
                        </table>

                        <table style="width: 100%">
                            <tr>
                                <td align="right" colspan="2">
                                    <asp:Button ID="Button1" Text='<%# Iif (TypeOf Container is GridEditFormInsertItem, "Insert", "Update") %>'
                                        runat="server" CommandName='<%# Iif (TypeOf Container is GridEditFormInsertItem, "PerformInsert", "Update") %>'>
                                    </asp:Button>&nbsp;
                                    <asp:Button ID="Button2" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel">
                                    </asp:Button>
                                </td>
                            </tr>
                        </table>
                    </FormTemplate>
                    <PopUpSettings ScrollBars="Auto" Modal="True"></PopUpSettings>
            </EditFormSettings>
        </MasterTableView>
        <ClientSettings AllowDragToGroup="True">
            <Scrolling AllowScroll="True" UseStaticHeaders="True" />
            <ClientEvents OnRowDblClick="RowDblClick" />
        </ClientSettings>
</telerik:RadGrid>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ProLearnConnectionString %>" 
        SelectCommand="SELECT tblUser.user_id, tblUser.last_name, tblUser.first_name, tblRole.role FROM tblUser INNER JOIN tblRole ON tblUser.role_id = tblRole.role_id ORDER BY tblUser.user_id"
        OldValuesParameterFormatString="original_{0}" 
        UpdateCommand="UPDATE [tblUser] SET [last_name] = ?, [first_name] = ? WHERE [user_id] = ? ">
    <UpdateParameters>
        <asp:Parameter Name="last_name" Type="String" />
        <asp:Parameter Name="first_name" Type="String" />
        <asp:Parameter Name="original_user_id" Type="Int32" />
    </UpdateParameters>

</asp:SqlDataSource>

А это если мой код в

TeacherRole.aspx.vb

Imports Telerik.Web.UI

Partial Class Admin_TeacherRole
    Inherits System.Web.UI.Page

    Private Sub RadGrid1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadGrid1.PreRender
        If Not IsPostBack Then
            For Each item As GridItem In RadGrid1.MasterTableView.Items
                If TypeOf item Is GridEditableItem Then
                    Dim editableItem As GridEditableItem = CType(item, GridDataItem)
                    editableItem.Edit = True
                End If
            Next

        End If
    End Sub
    Protected Sub RadGrid1_UpdateCommand(ByVal source As Object, ByVal e As GridCommandEventArgs)
        If e.CommandName = RadGrid.UpdateCommandName Then
            If TypeOf e.Item Is GridEditFormItem Then
                Dim item As GridEditFormItem = DirectCast(e.Item, GridEditFormItem)
                Dim id As Integer = Convert.ToInt32(item.GetDataKeyValue("user_id"))
                If id <> 0 Then
                    Dim txtlastname As TextBox = DirectCast(item.FindControl("TextBox1"), TextBox)
                    Dim txtfirstname As TextBox = DirectCast(item.FindControl("TextBox5"), TextBox)

                End If
            End If
        End If
    End Sub

End Class

Любой совет ипредложение будет востребовано .. Хорошего дня .. Заранее спасибо

Ответы [ 3 ]

4 голосов
/ 10 августа 2010

Если у вас все еще есть проблемы с этой проблемой, этот пример может быть полезен:

Автоматические операции с SqlDataSource и RadGrid

Пример кода, предоставленныйДемонстрация показывает, как настроить RadGrid для работы с автоматическими операциями.Он использует встроенные формы редактирования, но концепции должны быть похожими даже при использовании пользовательской EditForm.Надеюсь, это поможет.

3 голосов
/ 06 октября 2010

Если вы используете код для обновления, вам необходимо отключить AllowAutomaticUpdates / Insert т.е. AllowAutomaticUpdates = "False"

С уважением, Patrick

0 голосов
/ 26 июля 2010

Похоже, что вы правильно реализовали автоматическое редактирование данных с помощью SqlDataSource, я не вижу слабых мест или неправильного кода.Для устранения неполадок обновлений используйте указатели из этой статьи , по крайней мере, это то, что я делаю при реализации редактирования с элементами управления источниками данных для сетки Telerik.

Дик

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...