从 RadGrid 外部的 RadComboBox 中选择项目后,启用 RadGrid 的 "Add New" 按钮
Enable "Add New" button of RadGrid after selecting items from RadComboBox which is outside of RadGrid
在我的网页中,我有 Telerik RadGrid,在 RadGrid 之外,我有一个 Telerik RadCombobox。
我的要求是,如果用户没有从外部 RadCombobox 选择任何项目并尝试单击 RadGrid 的 "Add New" 按钮(以在其中添加新记录)。它应该显示 msg/alert "Please select Item from RadCombobox"。
从 RadCombobox 中选择后,用户将能够在 RadGrid 中添加新记录。
下面是HTML代码:
<telerik:RadComboBox ID="ddlCompany" runat="server" Height="200" Width="240" AutoPostBack="true"
DropDownWidth="310" EmptyMessage="- Select Product -" HighlightTemplatedItems="true" CausesValidation="false"
Filter="StartsWith" AppendDataBoundItems="true" AllowCustomText="true"
DataTextField="Title" DataValueField="Code" OnSelectedIndexChanged="ddlCompany_SelectedIndexChanged">
</telerik:RadComboBox>
<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="true" AllowPaging="True" PageSize="10"
OnNeedDataSource="RadGrid1_NeedDataSource" ShowFooter="True" GroupingEnabled="False"
AllowAutomaticInserts="True" OnInsertCommand="RadGrid1_InsertCommand" AutoGenerateColumns="false">
<PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
<MasterTableView Width="100%" ShowHeadersWhenNoRecords="true" CommandItemDisplay="TopAndBottom"
AutoGenerateColumns="false" InsertItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnFirstPage">
<Columns>
<telerik:GridEditCommandColumn>
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="ChatTo" HeaderText="To" UniqueName="ChatTo" SortExpression="ChatTo"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ChatCc" HeaderText="Cc" UniqueName="ChatCc" SortExpression="ChatCc"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ChatSubject" HeaderText="Subject" UniqueName="ChatSubject" SortExpression="ChatSubject"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ChatContent" HeaderText="Content" UniqueName="ChatContent" SortExpression="ChatContent"></telerik:GridBoundColumn>
<telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="DeleteColumn"></telerik:GridButtonColumn>
</Columns>
<EditFormSettings>
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
<CommandItemSettings AddNewRecordText="Add new record" RefreshText="Refresh"></CommandItemSettings>
</MasterTableView>
</telerik:RadGrid>
C#代码:
protected void ddlCompany_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
if (ddlCompany.SelectedItem != null)
{
RadGrid1.AllowAutomaticInserts = true;
}
}
我尝试使用上述方法来满足要求,但它没有按预期工作。
我是 Telerik 的新手,请帮我解决一些问题。
提前致谢。
使用 RadComboBox
的 SelectedIndexChanged
事件。
protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
if (RadComboBox1.SelectedItem != null)
{
GridCommandItem cmditem = (GridCommandItem)RadGrid1.MasterTableView.GetItems(GridItemType.CommandItem)[0];
System.Web.UI.WebControls.Button ctrl = (System.Web.UI.WebControls.Button)cmditem.FindControl("AddNewRecordButton");
ctrl.Enabled = false;
System.Web.UI.WebControls.LinkButton btn = (System.Web.UI.WebControls.LinkButton)cmditem.FindControl("InitInsertButton");
btn.Enabled = false;
}
else
{
// alert
}
}
请注意,您必须将 RadComboBox
的 AutoPostBack
属性 设置为 true,否则它不会触发。并添加 CommandItemsDisplay="Top"
给你 MasterTableView
:
<MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSource1" CommandItemDisplay="Top">
如果您将 CommandItemDisplay="Top"
添加到 MasterTableView
,那么您的 RadGrid 上方确实有这些按钮,不是吗?
private void radComboBox1_SelectedIndexChanged(object sender,Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
if (radComboBox1.SelectedIndex==0)
{
//Alert Message
}
else
{
radGridView1.AllowAddNewRow = true;
//or Visible The Button
}
}
在我的网页中,我有 Telerik RadGrid,在 RadGrid 之外,我有一个 Telerik RadCombobox。 我的要求是,如果用户没有从外部 RadCombobox 选择任何项目并尝试单击 RadGrid 的 "Add New" 按钮(以在其中添加新记录)。它应该显示 msg/alert "Please select Item from RadCombobox"。 从 RadCombobox 中选择后,用户将能够在 RadGrid 中添加新记录。
下面是HTML代码:
<telerik:RadComboBox ID="ddlCompany" runat="server" Height="200" Width="240" AutoPostBack="true"
DropDownWidth="310" EmptyMessage="- Select Product -" HighlightTemplatedItems="true" CausesValidation="false"
Filter="StartsWith" AppendDataBoundItems="true" AllowCustomText="true"
DataTextField="Title" DataValueField="Code" OnSelectedIndexChanged="ddlCompany_SelectedIndexChanged">
</telerik:RadComboBox>
<telerik:RadGrid ID="RadGrid1" runat="server" AllowSorting="true" AllowPaging="True" PageSize="10"
OnNeedDataSource="RadGrid1_NeedDataSource" ShowFooter="True" GroupingEnabled="False"
AllowAutomaticInserts="True" OnInsertCommand="RadGrid1_InsertCommand" AutoGenerateColumns="false">
<PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>
<MasterTableView Width="100%" ShowHeadersWhenNoRecords="true" CommandItemDisplay="TopAndBottom"
AutoGenerateColumns="false" InsertItemDisplay="Top" InsertItemPageIndexAction="ShowItemOnFirstPage">
<Columns>
<telerik:GridEditCommandColumn>
</telerik:GridEditCommandColumn>
<telerik:GridBoundColumn DataField="ChatTo" HeaderText="To" UniqueName="ChatTo" SortExpression="ChatTo"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ChatCc" HeaderText="Cc" UniqueName="ChatCc" SortExpression="ChatCc"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ChatSubject" HeaderText="Subject" UniqueName="ChatSubject" SortExpression="ChatSubject"></telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="ChatContent" HeaderText="Content" UniqueName="ChatContent" SortExpression="ChatContent"></telerik:GridBoundColumn>
<telerik:GridButtonColumn CommandName="Delete" Text="Delete" UniqueName="DeleteColumn"></telerik:GridButtonColumn>
</Columns>
<EditFormSettings>
<EditColumn ButtonType="ImageButton" />
</EditFormSettings>
<CommandItemSettings AddNewRecordText="Add new record" RefreshText="Refresh"></CommandItemSettings>
</MasterTableView>
</telerik:RadGrid>
C#代码:
protected void ddlCompany_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
if (ddlCompany.SelectedItem != null)
{
RadGrid1.AllowAutomaticInserts = true;
}
}
我尝试使用上述方法来满足要求,但它没有按预期工作。 我是 Telerik 的新手,请帮我解决一些问题。 提前致谢。
使用 RadComboBox
的 SelectedIndexChanged
事件。
protected void RadComboBox1_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
if (RadComboBox1.SelectedItem != null)
{
GridCommandItem cmditem = (GridCommandItem)RadGrid1.MasterTableView.GetItems(GridItemType.CommandItem)[0];
System.Web.UI.WebControls.Button ctrl = (System.Web.UI.WebControls.Button)cmditem.FindControl("AddNewRecordButton");
ctrl.Enabled = false;
System.Web.UI.WebControls.LinkButton btn = (System.Web.UI.WebControls.LinkButton)cmditem.FindControl("InitInsertButton");
btn.Enabled = false;
}
else
{
// alert
}
}
请注意,您必须将 RadComboBox
的 AutoPostBack
属性 设置为 true,否则它不会触发。并添加 CommandItemsDisplay="Top"
给你 MasterTableView
:
<MasterTableView AutoGenerateColumns="False" DataSourceID="SqlDataSource1" CommandItemDisplay="Top">
如果您将 CommandItemDisplay="Top"
添加到 MasterTableView
,那么您的 RadGrid 上方确实有这些按钮,不是吗?
private void radComboBox1_SelectedIndexChanged(object sender,Telerik.WinControls.UI.Data.PositionChangedEventArgs e)
{
if (radComboBox1.SelectedIndex==0)
{
//Alert Message
}
else
{
radGridView1.AllowAddNewRow = true;
//or Visible The Button
}
}