
I have created a dynamic grid in one of my forms that I am binding to a Datatable. What I want to know is how to add a Delete column, Iv enabled AllowAutomaticDeletes on my gridhow can I dynamically add a GridButtonColumn (its what I have used in all other pages in the app) and assign it to be the Right most column in the grid. I am adding it in my LoadGrid function, please look at the code, it adds column to the left side of all the columns that are generated and also does not show the Delete image called by the css class "MyImageButton" ??
DeleteColumn.ItemStyle.CssClass =
"MyImageButton";
I also added code to rebind to the grid in the NeedDataSource event as I read that for dynamically generated grids, the grid needs to be pulled from this event as well. But im adding the GridButtonColumn in the LoadGrid function only and this is called on (!Page.IsPostback). Can someone please tell me the correct way of adding a GridButtonColumn to a dynamically generated grid and how to get the correct order, the right most column and also any insight as to why the "MyImageButton" is not being loaded from codebehind? its working fine on other pages where i define all columns in the aspx page. Please let me know, your helps appreciated.
private void LoadGrid() { try { GridButtonColumn DeleteColumn = new GridButtonColumn(); ProuductsGrid.Columns.Add(DeleteColumn); DeleteColumn.ButtonType = GridButtonColumnType.ImageButton; DeleteColumn.Text = "Delete"; DeleteColumn.ConfirmDialogType = GridConfirmDialogType.RadWindow; DeleteColumn.ConfirmTitle = "Delete"; DeleteColumn.ConfirmText = "Delete this Product?"; DeleteColumn.ItemStyle.HorizontalAlign = HorizontalAlign.Center; DeleteColumn.ItemStyle.CssClass = "MyImageButton"; ProductBL bl = new ProductBL(); ProuductsGrid.DataSource = bl.GetProductsByClient((Int32)Session["ClientID"]); Product.DataBind(); } } protected void ProductGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { try { ProductBL bl = new ProductBL(); ProuductsGrid.DataSource = bl.GetProductsByClient((Int32)Session["ClientID"]); Product.DataBind(); } catch (Exception ex) { throw; } } }
<telerik:RadGrid ID="RadGrid1" runat="server" ... > ... <MasterTableView ...> ... <EditFormSettings EditFormType="Template"> <EditColumn UniqueName="EditCommandColumn1"></EditColumn> <FormTemplate> <table class="edit-table-rad" cellspacing="2" cellpadding="1" width="100%" border="0"> ... <tr> <td align="left" width="200px"> <b>Languages:</b><br /> <asp:CheckBox ID="chbSelectAllLanguage" runat="server" Text="Select All" ClientIDMode="Static"/> </td> <td> <asp:CheckBoxList ID="cblLanguage" runat="server" DataSourceID="entityDataSourceLanguage" DataTextField="LanguageName" DataValueField="LanguageID" RepeatColumns="4"> </asp:CheckBoxList> </td> </tr> ... </table> </FormTemplate> </EditFormSettings> </MasterTableView></telerik:RadGrid>CheckBox with jQuery by ID or cssclass, but I think that the CheckBox in the RadGrid's FormTemplate is not in the DOM at document.ready time.CheckBoxList items by selecting/deselecting the single CheckBox in the FormTemplate?
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then Dim tabSummary As New RadTab() tabSummary.Text = "Summary" tabSummary.NavigateUrl = "~/Funds/fundSummary.aspx?feederFundID=" & Request.QueryString("feederFundID") tabSummary.Enabled = True rtsFundTopNav.Tabs.Add(tabSummary) Dim tabProfile As New RadTab() tabProfile.Text = "Profile" tabProfile.NavigateUrl = "~/Funds/fundProfile.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabProfile) Dim tabPerformance As New RadTab() tabPerformance.Text = "Performance" tabPerformance.NavigateUrl = "~/Funds/fundPerformance.aspx?feederFundID=" & Request.QueryString("feederFundID") tabPerformance.Enabled = False rtsFundTopNav.Tabs.Add(tabPerformance) Dim tabRisk As New RadTab() tabRisk.Text = "Risk" tabRisk.NavigateUrl = "~/Funds/fundRisk.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabRisk) Dim tabPortfolio As New RadTab() tabPortfolio.Text = "Portfolio" tabPortfolio.NavigateUrl = "~/Funds/fundPortfolio.aspx?feederFundID=" & Request.QueryString("feederFundID") tabPortfolio.Enabled = False rtsFundTopNav.Tabs.Add(tabPortfolio) Dim tabExposure As New RadTab() tabExposure.Text = "Exposure" tabExposure.NavigateUrl = "~/Funds/fundExposure.aspx?feederFundID=" & Request.QueryString("feederFundID") tabExposure.Enabled = False tabExposure.IsBreak = True rtsFundTopNav.Tabs.Add(tabExposure) Dim tabFundReports As New RadTab() tabFundReports.Text = "Fund Reports" tabFundReports.NavigateUrl = "~/Funds/fundReports.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabFundReports) Dim tabFundDocuments As New RadTab() tabFundDocuments.Text = "Fund Documents" tabFundDocuments.NavigateUrl = "~/Funds/fundDocuments.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabFundDocuments) Dim tabContacts As New RadTab() tabContacts.Text = "Contacts" tabContacts.NavigateUrl = "~/Funds/fundContacts.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabContacts) Dim tabCommunications As New RadTab() tabCommunications.Text = "Calls and Meetings" tabCommunications.NavigateUrl = "~/Funds/fundCommunications.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabCommunications) Dim tabTasks As New RadTab() tabTasks.Text = "Tasks" tabTasks.NavigateUrl = "~/Funds/fundTasks.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabTasks) Dim tabHistory As New RadTab() tabHistory.Text = "History" tabHistory.NavigateUrl = "~/Funds/fundHistory.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabHistory) Dim tabAccounting As New RadTab() tabAccounting.Text = "Accounting" tabAccounting.NavigateUrl = "~/Funds/fundAccounting.aspx?feederFundID=" & Request.QueryString("feederFundID") tabAccounting.IsBreak = True rtsFundTopNav.Tabs.Add(tabAccounting) '-------------------------------------------------- 'Tabs in Question '-------------------------------------------------- Dim tabInitialIDD As New RadTab() tabInitialIDD.Text = "Initial DD (Inv)" tabInitialIDD.NavigateUrl = "~/Funds/MasterFunds/DueDiligence/initialIDD.aspx?masterFundID=" & masterFundID rtsFundTopNav.Tabs.Add(tabInitialIDD) Dim tabRatings As New RadTab() tabRatings.Text = "Ratings" tabRatings.NavigateUrl = "~/Funds/MasterFunds/DueDiligence/ratingSummary.aspx?masterFundID=" & masterFundID tabRatings.Enabled = True rtsFundTopNav.Tabs.Add(tabRatings) '--------------------------------------------------- Dim tabAFSReviews As New RadTab() tabAFSReviews.Text = "AFS Reviews" tabAFSReviews.NavigateUrl = "~/Funds/DueDiligence/afsReviews.aspx?feederFundID=" & Request.QueryString("feederFundID") tabAFSReviews.Enabled = False rtsFundTopNav.Tabs.Add(tabAFSReviews) Dim tabInitialODD As New RadTab() tabInitialODD.Text = "Initial DD (Ops)" tabInitialODD.NavigateUrl = "~/Funds/DueDiligence/initialODD.aspx?feederFundID=" & Request.QueryString("feederFundID") If fundType <> "Private Equity" And fundType <> "Hedge Fund" Then tabInitialODD.Enabled = False End If rtsFundTopNav.Tabs.Add(tabInitialODD) Dim tabOngoingDD As New RadTab() tabOngoingDD.Text = "Ongoing DD (Ops)" tabOngoingDD.NavigateUrl = "~/Funds/DueDiligence/ongoingODD.aspx?feederFundID=" & Request.QueryString("feederFundID") rtsFundTopNav.Tabs.Add(tabOngoingDD) If IsNumeric(Request.QueryString("selectedTab")) Then rtsFundTopNav.SelectedIndex = Request.QueryString("selectedTab") Else rtsFundTopNav.SelectedIndex = 0 End If End If Else Response.Clear() Response.Redirect("../default.aspx") Response.End() End IfEnd SubPublic WriteOnly Property activeTab() As String Set(ByVal value As String) rtsFundTopNav.Tabs.FindTabByText(value).Selected = True End SetEnd Property<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %><div class="announcementHeader"> <asp:Label runat="server" ID="lblFundLegalName" /></div><telerik:RadTabStrip ID="rtsFundTopNav" runat="server" /><table cellpadding="0" cellspacing="4" class="InnerContents" width="100%"> <tr> <td style="vertical-align: top" colspan="4"> <asp:Label ID="lblUCRCode" runat="server" CssClass="FieldLabel" Text="UCR Code" /> <br /> <telerik:RadComboBox ID="fldUCRCode" runat="server" Width="400px" Height="168px" SkinID="NoSizing" Filter="contains" SelectedValue='<%# Eval("UCRCodeID") %>' OnClientLoad="ComboSetFocus" OnClientSelectedIndexChanging="loadOptionalUCRCodes" OnItemsRequested="fldUCRCode_ItemsRequested" /> <br /> </td> </tr> <tr> <td style="vertical-align: top" colspan="4"> <asp:Label ID="lblUCROptionalDetailCode" runat="server" CssClass="FieldLabel" Text="Optional Detail Code" /> <br /> <telerik:RadComboBox ID="fldUCROptionalDetailCode" runat="server" EnableViewState="false" Width="400px" Height="168px" SkinID="NoSizing" Filter="contains" SelectedValue='<%# Eval("UCRCodeID") %>' OnClientItemsRequested="ItemsLoaded" OnItemsRequested="fldUCROptionalDetailCode_ItemsRequested" /> </td> </tr> ... etc. </table>function loadOptionalUCRCodes(sender, eventArgs) { var id = sender.get_id(); var optionalCombo = $find(id.substring(0, id.length - 10) + "fldUCROptionalDetailCode"); var item = eventArgs.get_item(); optionalCombo.set_text("Loading..."); // if a UCR Code is selected... if (item.get_index() > 0) { // ...load the optional combo optionalCombo.requestItems(item.get_value(), false); } else { optionalCombo.set_text(" "); optionalCombo.clearItems(); } } function ItemsLoaded(sender, eventArgs) { if (sender.get_items().get_count() > 0) { // pre-select the first item sender.set_text(sender.get_items().getItem(0).get_text()); sender.get_items().getItem(0).highlight(); } sender.showDropDown(); } protected void Page_Load(object sender, EventArgs e) { LoadUCRCodes(); if (!Page.IsCallback) { LoadOptionalUCRCodes(fldUCRCode.SelectedValue); } } protected void fldUCRCode_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { LoadUCRCodes(); } protected void fldUCROptionalDetailCode_ItemsRequested(object o, RadComboBoxItemsRequestedEventArgs e) { //passes the value of the UCRCode LoadOptionalUCRCodes(e.Text); } protected void LoadUCRCodes() { if (fldUCRCode.Items.Count == 0) { fldUCRCode.Items.Add(new Telerik.Web.UI.RadComboBoxItem(string.Empty, "-1")); foreach (DAL.LookupClasses.INCUCRCodeLookupItem l in Lookups.INC.UCRCode.AllItems) { if (!l.Parent.HasValue) { fldUCRCode.Items.Add(new Telerik.Web.UI.RadComboBoxItem(l.DropDownText, l.ID.ToString())); } } } } protected void LoadOptionalUCRCodes(string UCRCodeID) { fldUCROptionalDetailCode.Items.Clear(); if (fldUCROptionalDetailCode.Items.Count == 0) { fldUCROptionalDetailCode.Items.Add(new Telerik.Web.UI.RadComboBoxItem(string.Empty, "-1")); foreach (DAL.LookupClasses.INCUCRCodeLookupItem l in Lookups.INC.UCRCode.AllItems) { if (l.Parent.HasValue) { if (l.Parent.ToString() == UCRCodeID) { fldUCROptionalDetailCode.Items.Add(new Telerik.Web.UI.RadComboBoxItem(l.DropDownText, l.ID.ToString())); } } } } } I have a RadComboBox that displays a grid filtered on user input. After 2 characters the grid is filtered and displayed for the user to select from.
The RadComboBox works fine until I place it in a RadPanelBar RadPanelItem. Then when the second character is typed the grid is filtered and displayed, but immediately closes.
I couldn't figure it out and finally replaced the RadComboBox with jQuery Autocomplete widget. The exact same thing happens. When the user types in the second character the dropdown appears but then is immediately closed. Clicking on the icon displays the list just fine.
Is there a setting for RadPanelBar that I am not getting?
I have a table with several nvarchar(max) fields that have HTML in them. I want to show the first bit of the text in a column in a RadGrid so the user can filter on the column. But when I put the column in as the last column on the right, the right part of the text is cut off. It does not obey the HeaderStyle Width property or the Height property.
<telerik:GridBoundColumn DataField="interesting" FilterControlAltText="Filter interesting column" HeaderText="interesting" SortExpression="interesting" UniqueName="interesting" Visible="True"> <HeaderStyle Width="100px" /></telerik:GridBoundColumn>I tried changing the column to an HTMLEditor column, even though this grid is READ ONLY. Didn't change anything.
<telerik:GridHTMLEditorColumn DataField="interesting" FilterControlAltText="Filter interesting column" HeaderText="interesting" SortExpression="interesting" UniqueName="interesting" Visible="True"> <HeaderStyle Width="100px" /></telerik:GridHTMLEditorColumn>I tried using a separate column editor and it also didn't change anything.
<telerik:GridHTMLEditorColumnEditor ID="GridHTMLEditor" runat="server"> <Editor runat="server" Height="50px" Width="100px"><Content> </Content> </Editor></telerik:GridHTMLEditorColumnEditor>Even worse, when this column is in the grid, it causes other regular text columns to NOT obey their width settings. i.e. If I have the code below, then the second column is NOT rendered at 300px. This is really messed up and I don't know what else to do.
<telerik:GridHTMLEditorColumn DataField="interesting" FilterControlAltText="Filter interesting column" HeaderText="interesting" SortExpression="interesting" UniqueName="interesting" Visible="True"> <HeaderStyle Width="100px" /> </telerik:GridHTMLEditorColumn><telerik:GridBoundColumn DataField="comname" FilterControlAltText="Filter comname column" HeaderText="Common Name" SortExpression="comname" UniqueName="comname"> <HeaderStyle Width="300px" /> </telerik:GridBoundColumn>