Telerik 控件在执行RadGrid ItemCommand()后不更新
我有一个RadGrid,它在单击行时应该向服务器发送一个特定的值。由于页面的性质,所有事件都在服务器端处理。My-Radgrid1-在首次访问页面时使用默认的select all sqldatasource,然后,您可以通过单击另一个Radgrid1来过滤Radgrid1项。它也有一个不同类别的列表 发生的情况是: 1.行被单击 2.radgrid1_项命令。。。,。。。被执行 编辑后,以下代码更改为实际代码:Telerik 控件在执行RadGrid ItemCommand()后不更新,telerik,updatepanel,postback,radgrid,itemcommand,Telerik,Updatepanel,Postback,Radgrid,Itemcommand,我有一个RadGrid,它在单击行时应该向服务器发送一个特定的值。由于页面的性质,所有事件都在服务器端处理。My-Radgrid1-在首次访问页面时使用默认的select all sqldatasource,然后,您可以通过单击另一个Radgrid1来过滤Radgrid1项。它也有一个不同类别的列表 发生的情况是: 1.行被单击 2.radgrid1_项命令。。。,。。。被执行 编辑后,以下代码更改为实际代码: protected void MenuKampionati_ItemClick(ob
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();
}
三,。页面刷新,RadGrid1中有旧值+标签有默认的测试文本
我已经阅读了所有关于这个问题的Telerik API,并尝试了previuos解决方案,但徒劳无功。
我有什么遗漏吗?还是忘了做?有人知道为什么会这样吗
关于AJAX,我的经理已经指示我不要在这个页面上使用AJAX。希望我的英语足够好来解决这个问题
编辑:我得到了一个关于我的查询的PM,我已经在SQLServerManagementStudio中对它进行了测试,它功能齐全。我现在正在添加包含此控件的div的aspx代码,外部有标签、一些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 > getdate() and ndeshje_id_live IS NULL) OR (data < getdate() AND data_hapjes > 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 < getdate() AND data_hapjes > 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>
如果有任何问题,请告诉我
<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>
你好,杰耶什,谢谢你的回复。在我看到你的答案后,我注意到我的两个网格在不同的UpdatePanel-s中,但我将它们都放在同一个UpdatePanel中,运行测试,但它不起作用。但我必须补充一点,在同一个UpdatePanel中移动它们之后,在回发RadGrid1具有旧值之后,我意外地点击了刷新按钮,这次它显示了过滤后的数据。我想我缺少了一些设置类型,你知道吗?你能提供你的aspx页面代码吗?所以我们可以解决这个问题。我更新了上面的代码,我离开了网格,我想在RadMenu的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;
}