我是C#noobie,我继承了大型C#项目,我不得不进行修改。
首先让我通过代码:
protected void Page_Load(object sender, EventArgs e)
{
// Loading rcb1
this.dsX.SelectParameters["parameter1"].DefaultValue = XXX.XXX.ToString();
this.dsX.SelectParameters["parameter2"].DefaultValue = this.XXX.ToString();
if ( !IsPostBack )
{
Control c = sender as Control;
RadComboBox rcb1 = c.Parent.FindControl("rcb1") as RadComboBox;
// Loading rcb2
this.dsY.SelectParameters["parameter1"].DefaultValue = XXX.XXX.ToString();
this.dsY.SelectParameters["parameter1"].DefaultValue = this.XXX.ToString();
// Value of first option from rcb1
this.dsY.SelectParameters["rcb1_value"].DefaultValue = rcb1.SelectedValue.ToString();
}
}
protected void rcb1_SelectedIndexChanged(object o, RadComboBoxSelectedIndexChangedEventArgs e)
{
if (e.Value != "")
{
Control c = o as Control;
RadComboBox rcb1 = c.Parent.FindControl("rcb1") as RadComboBox;
RadComboBox rcb2 = c.Parent.FindControl("rcb2") as RadComboBox;
this.dsUsers.SelectParameters["parameter1"].DefaultValue = XXX.XXX.ToString();
this.dsUsers.SelectParameters["parameter2"].DefaultValue = this.XXX.ToString();
this.dsUsers.SelectParameters["parameter3"].DefaultValue = e.Value.ToString();
}
}
<tr>
<td align="left" height="22px">
LABEL
</td>
<td align="left" height="22px">
<telerik:RadComboBox ID="rcb1" runat="server" DataSourceID="dsX" DataTextField="PONotificationName"
DataValueField="ID" Skin="Vista" meta:resourcekey="xxResource1"
OnSelectedIndexChanged="rcb1_SelectedIndexChanged" AutoPostBack="true">
</telerik:RadComboBox>
<asp:SqlDataSource ID="dsX" runat="server" ConnectionString="<%$ connectionStrings:XXX %>"
SelectCommand="XXX" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="parameter1" Type="Int32" />
<asp:Parameter Name="parameter2" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td align="left" height="22px">
LABEL 2
</td>
<td align="left" height="22px">
<telerik:RadComboBox ID="rcb2" runat="server" DataSourceID="dsY" DataTextField="Name"
DataValueField="ID" Skin="Vista" meta:resourcekey="xxResource2">
</telerik:RadComboBox>
<asp:SqlDataSource ID="dsY" runat="server" ConnectionString="<%$ connectionStrings:XXX %>"
SelectCommand="XXX2" SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:Parameter Name="parameter1" Type="Int32" />
<asp:Parameter Name="parameter2" Type="Int32" />
<asp:Parameter Name="parameter3" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
</td>
</tr>
我的问题是那些组合框。 代码工作正常,但问题是在用户执行任何操作之前第二个comboBox(rcb2)保持空白。
我必须使用存储过程从第一个组合框(rcb1)加载第二个组合框(rcb2)。
我试过.SelectedValue。 Item [index] .value和其他它返回null。
也许问题是第一个ComboBox没有选定项目的定义?
有人可以帮我解决这个问题吗?
我可以在顶部向rcb1添加新的空白项目。但我也遇到了问题。
答案 0 :(得分:0)
用空消息解决了我的问题......天啊花了我一整天!
<telerik:RadComboBox ID="rcb1" runat="server" DataSourceID="dsX" DataTextField="PONotificationName"
DataValueField="ID" Skin="Vista" meta:resourcekey="xxResource1"
OnSelectedIndexChanged="rcb1_SelectedIndexChanged" AutoPostBack="true" emptymessage="Select Value...">
</telerik:RadComboBox>