我有一个隐藏的输入,用于存储存储过程使用的数字。我有一个按钮,当点击它时,更新输入的值。
<telerik:RadAjaxPanel>
.... other stuff ....
<input type="hidden" id="NumberOfResults" runat="server" />
</telerik:RadAjaxPanel>
var numOfResults = RadAjaxPanel1.FindControl("NumberOfResults") as HtmlInputHidden;
numOfResults.Value = "250";
当我使用Firebug查看输入时,值应为250。
问题:下次调用输入时,值不是250,它是之前的值:
protected void RadGrid1_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
{
var resultsInput = (HtmlInputHidden)RadAjaxPanel1.FindControl("NumberOfResults");
int? numberOfResults = Convert.ToInt32(resultsInput.Value);
//This ^ should be 250
long? routeID = Convert.ToInt64(RouteID.Value);
RadGrid1.DataSource = GetDataTable(customerID, null, plantID, numberOfResults, routeID);
}
如何让NeedDataSource
事件看到新值?
注意:该值最初在Page_Load
事件中设置:
public void Page_Load(object sender, EventArgs e)
{
//Initial values for filtering
NumberOfResults.Value = Convert.ToString(int.MaxValue);
}
答案 0 :(得分:2)
Page_Load将在每个帖子上触发,你应该检查IsPostBack而不是设置NumberOfResults.Value