Элементы управления не обновляются после выполнения RadGrid ItemCommand()

У меня есть RadGrid, который на RowClick должен отправить определенное значение на сервер. Из-за характера страницы все события обрабатываются на стороне сервера. My -Radgrid1- использует по умолчанию "выбрать" все sqldatasource при первом доступе к странице, а затем вы можете фильтровать элементы RadGrid1, щелкая другой RadGridAnother. который также имеет список различных категорий.

Что происходит: 1. Строка нажата 2. Radgrid1_ItemCommand(...,...) выполняется.

Код ниже изменен на фактический после редактирования:

protected void MenuKampionati_ItemClick(object sender, RadMenuEventArgs e)
{
    Case = 2;
    Arg1 = "%%";
    Arg2 = e.Item.Value;
    string query = "EXECUTE get_ndeshje_kot31 " + Case.ToString() + ", '" + Arg1 + "', '" + Arg2 + "', 0";
    SqlDataSource MyDataSource = new SqlDataSource(ConfigurationManager.ConnectionStrings["basteConnectionString"].ConnectionString, query);
    this.GridNdeshjet.DataSource = MyDataSource;
    this.GridNdeshjet.DataBind();
}

3. Страница "обновляется", и в RadGrid1 есть старые значения + на ярлыке есть текст теста по умолчанию.

Я прочитал все Telerik API по этому вопросу, и попробовал предыдущие решения напрасно. Есть что-то, чего мне не хватает? или забыли сделать? Кто-нибудь знает, почему это может происходить?

Что касается AJAX, мой менеджер поручил мне не "AJAX" эту страницу. Надеюсь, мой английский достаточно хорош для этой проблемы.

Изменить: я получил PM по поводу моего запроса, я уже проверил его в студии управления sqlserver, и он полностью функционален. Теперь я добавляю aspx-код div, который содержит эти элементы управления, за пределами есть метки, некоторая aspbutton и ничего более, не связанного с содержимым этого div.

Второе редактирование, предыдущие сетки были изменены на RadMenu. Codebehind все тот же, только что связанный с новым меню.

      <div>
 <table>
    <tr>

        <td><asp:UpdatePanel ID="panelGetTeGjitha"  runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >
                <ContentTemplate>
                <telerik:RadMenu ID="MenuKategoria" runat="server" DataSourceID="GetKategoriaDataSource" 
                        DataTextField="kategoria" DataValueField="vlera" Flow="Vertical" 
                            DataFieldID="kategoria"
                        onitemclick="MenuKategoria_ItemClick">
                </telerik:RadMenu>
                    <asp:SqlDataSource ID="GetKategoriaDataSource" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:basteConnectionString %>" 
                        SelectCommand="Get_Kategorite" SelectCommandType="StoredProcedure">
                        <SelectParameters>
                            <asp:SessionParameter DefaultValue="0" Name="Country" SessionField="country" 
                                Type="Int32" />
                        </SelectParameters>
                    </asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel></td>
        <td><asp:UpdatePanel ID="panelGetKampionati"  runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >
                <ContentTemplate>
                    <telerik:RadMenu ID="MenuKampionati" runat="server" DataSourceID="GetKampionatiDataSource" 
                        DataTextField="kampionati" DataValueField="kampionati" Flow="Vertical" 
                            DataFieldID="kategoria" onitemclick="MenuKampionati_ItemClick" >
                </telerik:RadMenu>
                    <asp:SqlDataSource ID="GetKampionatiDataSource" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:basteConnectionString %>" SelectCommand="SELECT kampionati FROM ndeshje (NOLOCK) 
            WHERE ((data &gt; getdate() and ndeshje_id_live IS NULL) OR (data &lt; getdate() AND data_hapjes &gt; getdate()                                  AND ndeshje_id_live IS NOT NULL))
            AND bllokuar = '0' AND live = 0 
            GROUP BY kampionati ORDER by kampionati"></asp:SqlDataSource>
                <telerik:RadGrid ID="GridNdeshjet" runat="server" GridLines="None" 
                     onneeddatasource="GridNdeshjet_NeedDataSource1">
                </telerik:RadGrid>
                </ContentTemplate>
            </asp:UpdatePanel></td>
        <td><asp:UpdatePanel ID="panelGetNdeshje"  runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" >
                <ContentTemplate>
                    <telerik:RadMenu ID="MenuNdeshjeLive" runat="server" DataSourceID="GetNdeshjeLiveDataSource" 
                        DataTextField="Home" DataValueField="Home" Flow="Vertical" 
                            DataFieldID="Home" onitemclick="MenuKampionati_ItemClick" >
                </telerik:RadMenu>
                    <asp:SqlDataSource ID="GetNdeshjeLiveDataSource" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:basteConnectionString %>" SelectCommand="SELECT MAX(Home) AS Home, MAX(Away) AS Away FROM ndeshje (NOLOCK) 
         WHERE(Data &lt; getdate() AND data_hapjes &gt; getdate() AND ndeshje_id_live IS NOT null AND live = 1) 
         AND bllokuar = '0' GROUP BY Home, Away ORDER BY Home, Away"></asp:SqlDataSource>
                </ContentTemplate>
            </asp:UpdatePanel></td>
    </tr>
</table>

1 ответ

Решение

Дайте мне знать, если что-то беспокоит.

  <asp:UpdatePanel ID="panelGetKampionati" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        <telerik:RadMenu ID="MenuKampionati" runat="server" DataTextField="Name" DataValueField="ID"
                            Flow="Vertical" DataFieldID="ID" OnItemClick="MenuKampionati_ItemClick">
                        </telerik:RadMenu>
                        <telerik:RadGrid ID="GridNdeshjet" runat="server" GridLines="None" OnNeedDataSource="GridNdeshjet_NeedDataSource1">
                        </telerik:RadGrid>
                    </ContentTemplate>
                </asp:UpdatePanel>

..........

  protected void MenuKampionati_ItemClick(object sender, RadMenuEventArgs e)
{

    GridNdeshjet.Rebind();
}

protected void GridNdeshjet_NeedDataSource1(object sender, GridNeedDataSourceEventArgs e)
{

    string strID = string.Empty; // just For Test


    if (MenuKampionati.SelectedItem != null)
    {
        // Get Selected Records  as per item selected in RadMenu

        //Case = 2;
        //Arg1 = "%%";
        string Arg2 = MenuKampionati.SelectedItem.Value;
        //string query = "EXECUTE get_ndeshje_kot31 " + Case.ToString() + ", '" + Arg1 + "', '" + Arg2 + "', 0";
        //SqlDataSource MyDataSource = new SqlDataSource(ConfigurationManager.ConnectionStrings["basteConnection
        strID = MenuKampionati.SelectedItem.Value; // just For Test
    }
    else
    {
        // Get All records From DB
    }


    // just For Test
    dynamic data = new[] {
            new { ID = 1, Name ="Name" + strID},
            new { ID = 2, Name ="Name"+ strID},
            new { ID = 3, Name ="Name"+ strID},
            new { ID = 4, Name ="Name"+ strID},
            new { ID = 5, Name ="Name"+ strID},
            new { ID = 6, Name = "Name"+ strID}
        };


    GridNdeshjet.DataSource = data;
}
Другие вопросы по тегам