【发布时间】:2012-07-21 07:45:25
【问题描述】:
我无法更新用户控件中的 radgrid。我的 ajaxmanager 在主窗体中。
我的用户控制是 TaniUC 我设法从 usercontol 触发 ajaxrequest 事件。但我无法更新 radgrid。我使用 TaniEkle(ID),它是我的 usercontol 中的一个公共函数,在我的 radgrid 中添加一行。 它正在添加但未在屏幕上更新。
Form.aspx
<telerik:RadAjaxManager ID="RadAjaxManager1" OnAjaxRequest="RadAjaxManager1_AjaxRequest"
runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadAjaxManager1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="grdHastalar" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="grdHastalar" EventName="OnRowClick" >
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="TaniUC" LoadingPanelID="RadAjaxLoadingPanel1" />
</UpdatedControls>
</AjaxSettings>
Form.aspx.cs
protected void RadAjaxManager1_AjaxRequest(object sender, AjaxRequestEventArgs e)
{
if(e.Argument=="taniekle")
{
int ID = DataReader.GetInt32(Request.Form["grdTanilarDClickedRowIndex"]);
if (ID > 0)
{
ucpTani.TaniEkle(ID);
}
return;
}
}
TaniUc.ascx.cs(用户控件)
private List<HBS_TANI> seciliTanilarList
{
get
{
return (List<HBS_TANI>)ViewState["seciliTanilarList"];
}
set
{
ViewState["seciliTanilarList"] = value;
}
}
public void TaniEkle(int id)
{
var lst = seciliTanilarList.Where(k => k.ICD10_ID == id).ToList();
if (lst.Count() > 0)
{
return;
}
else
{
HBS_TANI entity = new HBS_TANI();
entity.TUR_ID = 1;
entity.STATUS = true;
bllTakipTani.Add(entity);
seciliTanilarList.Add(entity);
grdSeciliTanilar.DataSource = seciliTanilarList;
}
}
【问题讨论】:
标签: asp.net-ajax telerik radgrid webusercontrol