【问题标题】:Index Change event for Combobox of gridtemplateColumn in TelerikTelerik 中 gridtemplateColumn 组合框的索引更改事件
【发布时间】:2012-04-05 18:33:18
【问题描述】:

我可以写代码。 在这个我可以使用一个模板列,在这个我构建一个 RadCombobox。 当它的索引更改时,我想影响下面的文本框。 Link 将 Combo box 的选中值设置为 Text on below TextBox。 组合框和文本框是不同模板列的不同控件。

我可以像这样编写组合框的控件:

<telerik:RadComboBox ID="cmbGID" runat="server" DataSourceID="SqlDataSource8" DataTextField="Name"
                        DataValueField="ID" AutoPostBack="True" OnSelectedIndexChanged="cmbGID_SelectedIndexChanged">

但是我不知道这个事件的参数是这样的:

protected void cmbGID_SelectedIndexChanged()
{
       //code...
}

任何人请告诉我参数并告诉我是否可以设置 txtValue.Text = cmbGID.SelectedValue.ToString()...???

【问题讨论】:

  • 注意:这个模板列的所有控件都是InsertItem Template...

标签: c# asp.net combobox telerik radgrid


【解决方案1】:

我得到了这个问题的解决方案......

这是通过以下代码工作的:

protected void cmbGrp_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
    RadComboBox ddlCtrl = sender as RadComboBox;
    GridEditableItem dataItem = ddlCtrl.NamingContainer as GridEditableItem;
    RadComboBox cmbCtrl = dataItem.FindControl("cmbSetNo") as RadComboBox;
    RadTextBox txtCtrl = dataItem.FindControl("cmbSetNo") as RadTextBox;
    txtCtrl.Text = ddlctrl.SelectedValue.ToString();

    string query = "QUERY";

    ds.Clear();
    ds = c.getDataSet(query);

    cmbCtrl.DataSource = ds.Tables[0];
    cmbCtrl.DataTextField = "NO";
    cmbCtrl.DataValueField = "RecordID";
    cmbCtrl.DataBind();
}

【讨论】:

  • 嗨,也许是版本的原因,但现在工作的演员是: var editItem = cmbItem.NamingContainer as GridEditFormItem;
【解决方案2】:

这样的事情应该可以工作:

protected void vmbGID_SelectedIndexChanged(object sender, EventArgs e)
{
    var ddlCtrl = sender as RadComboBox;
    if (ddlCtrl != null)
    {
        var dataItem = ddlCtrl.Parent as GridDataItem;
        if (dataItem != null)
        {
            var txtCtrl = dataItem.FindControl("txtValue") as RadTextBox;
            if (txtCtrl != null)
            {
                txtCtrl.Text = ddlCtrl.SelectedValue;
            }
        }
    }
}

【讨论】:

  • 我还想通过此查询触发查询并通过此查询设置 DataSource、text、value 字段。为此我写:var cmbCtrl = dataItem.FindControl("cmbsetnumber") as RadComboBox; string qury = "QUERY"; ds.Clear(); ds = c.getDataSet(qury); cmbCtrl.DataSource = ds.Tables[0]; cmbCtrl.DataTextField = "NO"; cmbCtrl.DataValueField = "RecordID"; cmbCtrl.DataBind(); 错误:对象引用未设置为对象的实例。 @ : var cmbCtrl = dataItem.FindControl("cmbsetnumber") as RadComboBox;请告诉我解决方案 4 这个..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多