如何在C#代码中存储RadComboBox选定值?

时间:2016-07-19 08:01:48

标签: c# telerik selectedvalue radcombobox

我的RadComboBox应该下拉并显示供我选择的选项。选项是名称,但所选值是与中心ID相对应的数字。

<telerik:RadComboBox DataValueField="OPERATION_CENTER_ID" RenderingMode="Full" EmptyMessage="Select Operation Center" DataTextField="OPERATION_CENTER_NAME" ID="RadComboBox1" runat="server"></telerik:RadComboBox>

 protected void rdOrders_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e) {
     //Get OPERATION_CENTER_ID in f1 from f2 query (it is an int)

     string f2 = "select * from [dbo].[GetOperationCentersInfo]('F')";

     SQLHelper a = new SQLHelper(SQLHelper.ConnectionStrings.EmallShippingConnectionString);

       int ID = RadComboBox1.SelectedValue; {
       string f1 = "select * from [dbo].[GetReadyDeliveryOrderItems](" + ID + ")";
       DataTable DataTable1 = a.getQueryResult(f1); //Orders Query by OPERATION_CENTER_ID
       DataTable DataTable2 = a.getQueryResult(f2); //Operation centers Query
       DataTable testDataTable = new DataTable();
       rdOrders.DataSource = DataTable1;
       RadComboBox1.DataSource = DataTable2;

       RadComboBox1.DataBind();
     }

基本上,当用户从RadComboBox1中选择一个值时,我想将该值存储在int变量中。

2 个答案:

答案 0 :(得分:0)

希望在绑定网格时分配DataValueField,并且Value可以转换为整数。然后我想建议int.TryParse进行此转换,以便您使用其返回值来检查转换是否成功。请参阅以下代码:

int ID;
if(Int32.TryParse(RadComboBox1.SelectedValue,out ID))
{
  // You can proceed with ID 
}
else
{
  // Conversion failed
}

答案 1 :(得分:0)

是否有任何特殊原因需要在RadComboBox事件中对NeedDataSource控件进行数据绑定?由于页面/控件的生命周期,这不能保证您的RadComboBox控件将被正确加载。

您可以做的是将数据绑定代码添加到Page_Load事件,如下所示。

protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
   {
      BindRadComboBox();
   }
}

private void BindRadComboBox()
{
    string f2 = "select * from [dbo].[GetOperationCentersInfo]('F')";

     SQLHelper a = new SQLHelper(SQLHelper.ConnectionStrings.EmallShippingConnectionString);

       int ID = RadComboBox1.SelectedValue; {
       string f1 = "select * from [dbo].[GetReadyDeliveryOrderItems](" + ID + ")";
       DataTable DataTable1 = a.getQueryResult(f1); //Orders Query by OPERATION_CENTER_ID
       DataTable DataTable2 = a.getQueryResult(f2); //Operation centers Query
       DataTable testDataTable = new DataTable();
       rdOrders.DataSource = DataTable1;
       RadComboBox1.DataSource = DataTable2;
       RadComboBox1.DataBind();
}

您需要仔细检查获取数据的代码。另外,对于将字符串转换为整数,请参考非幸运的答案,这是建议的方法。

希望这会有所帮助。