| <rad:GridTemplateColumn UniqueName="Name" SortExpression="Name"> |
| <ItemTemplate> |
| <asp:Repeater ID="rptClientName" runat="server" > |
| <HeaderTemplate> |
| <table> |
| </HeaderTemplate> |
| <ItemTemplate> |
| <tr> |
| <td><asp:Label ID="lblClientName" runat="server" /></td> |
| </tr> |
| </ItemTemplate> |
| <FooterTemplate> |
| </table> |
| </FooterTemplate> |
| </asp:Repeater> |
| </ItemTemplate> |
| </rad:GridTemplateColumn> |
|
function Sys$WebForms$PageRequestManager$_updatePanel(updatePanelElement, rendering) { |
|
|
|
for (var updatePanelID in this._scriptDisposes) { |
|
if (this._elementContains(updatePanelElement, document.getElementById(updatePanelID))) { |
|
var disposeScripts = this._scriptDisposes[updatePanelID]; |
|
for (var i = 0; i < disposeScripts.length; i++) { |
|
eval(disposeScripts[i]); |
|
} |
|
|
|
delete this._scriptDisposes[updatePanelID]; |
|
} |
|
} |
|
|
|
this._destroyTree(updatePanelElement); |
|
|
|
|
|
updatePanelElement.innerHTML = rendering; /* <-- ERROR */ |
|
} |
|
|
I've attempted to update the previous row but the newly changed values are not available anywhere I can see after the selectedindexchanged event is fired for the next row. If I understand the problem correctly, I need the equivalent of a "Row_FinishedEditing" event, which, I'm pretty sure, doesn't exist.
I've also tried a suggested architecture where all rows are in "edit mode" and regurlar updates take place in the background via ajax timer. However, when the timer is fired (although there is no postback) the focus is removed from the cell one is editing.
Any suggestions or best practices?
Thanks, Rodney
<rad:RadGrid ID="StatesGrid" runat="server" ClientSettings-Scrolling-AllowScroll="true"
AllowSorting="True" ShowGroupPanel="True" AutoGenerateColumns="False" GridLines="None"
Skin="Outlook2007" AllowMultiRowSelection="True" OnNeedDataSource="StatesGrid_NeedDataSource"
EnableAJAX="True" EnableAJAXLoadingTemplate="True" BorderStyle="None" Height="300px">
<ClientSettings ReorderColumnsOnClient="True" EnableClientKeyValues="True">
<Selecting AllowRowSelect="True" EnableDragToSelectRows="false" />
<Scrolling AllowScroll="True" UseStaticHeaders="True" SaveScrollPosition="false">
</Scrolling>
</ClientSettings>
<MasterTableView>
<RowIndicatorColumn Visible="False">
<HeaderStyle Width="20px"></HeaderStyle>
</RowIndicatorColumn>
<ExpandCollapseColumn Visible="False" Resizable="False">
<HeaderStyle Width="20px"></HeaderStyle>
</ExpandCollapseColumn>
<Columns>
<rad:GridTemplateColumn UniqueName="chkItem">
<HeaderStyle Width="22px" />
<HeaderStyle Width="22px" HorizontalAlign="Left" />
<HeaderTemplate>
<asp:CheckBox ID="chkSelectAll" runat="server" />
</HeaderTemplate>
<ItemStyle Width="22px" />
<ItemTemplate>
<asp:CheckBox ID="chkItem" runat="server" />
<asp:HiddenField ID="hdnState" Value='<%# Eval("StateAbbreviation") %>' runat="server" />
</ItemTemplate>
</rad:GridTemplateColumn>
<rad:GridBoundColumn DataField="StateAbbreviation" HeaderText="StateAbbreviation"
UniqueName="column" Visible="False">
</rad:GridBoundColumn>
<rad:GridBoundColumn DataField="StateName" HeaderText="StateName" UniqueName="column1"
Visible="False">
</rad:GridBoundColumn>
<rad:GridTemplateColumn HeaderText="Select State(s)" UniqueName="TemplateColumnTotalAmount">
<ItemTemplate>
<asp:Label ID="Label1" Text='<%# DisplayStateNames(Container) %>' runat="server"></asp:Label>
</ItemTemplate>
</rad:GridTemplateColumn>
</Columns>
</MasterTableView>
</rad:RadGrid>
| If (TypeOf e.Item Is GridEditableItem AndAlso e.Item.IsInEditMode) Then |
| 'switch the Item to Allow Edits of ListName if it is UserDefined |
| If DirectCast(e.Item.DataItem, InvoiceItem).ItemTypeID = "U" Then |
| 'switching wrong row? |
| DirectCast(e.Item.OwnerTableView.GetColumnSafe("ListName"), GridBoundColumn).ReadOnly = False |
| DirectCast(e.Item.OwnerTableView.GetColumnSafe("Amount"), GridBoundColumn).ReadOnly = False |
| End If |
The above code sets only the first item in the grid, not the item I am referencing.
I can't seem to access the ReadOnly attribute with anything else.
I have been registering controls like the following:
<%@ Register TagPrefix="rad" Namespace="Telerik.WebControls" Assembly="RadToolbar.NET2" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.WebControls" Assembly="RadComboBox.Net2" %>
<%@ Register Assembly="RadInput.Net2" Namespace="Telerik.WebControls" TagPrefix="rad" %>
Telerik online demos instead use one register for all controls:
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
1. How do you set up a Visual Studio project to use this type registration?
2. Is the way I am doing it, registering individual controls, bad?
3. Using my current scheme, now I want to use RadTooltip but I don't know how to register it.
Because I cannot find a dll for RadTooltip in:
C:\Program Files\telerik\RadControls for ASP.NET Q1 2008\NET2\bin
So how may I register it? And how may I add it to my Visual Studio toolbox?
<
EditItemTemplate>
<telerik:RadComboBox ID="ddlDeviceAW" runat="server" EnableEmbeddedSkins="false" Skin="UTC" ImagesPath="../RadControls/UTC/ComboBox" EnableLoadOnDemand="true" LoadingMessage="Loading Device..." MarkFirstMatch="True" ToolTip="Select a Device" EnableVirtualScrolling="true" Width="150px" AllowCustomText="true" OnItemsRequested="ddlDeviceAW_ItemsRequested"></telerik:RadComboBox>
</EditItemTemplate>
The way I am loading the combo is:
protected
void ddlDeviceAW_ItemsRequested(object sender, RadComboBoxItemsRequestedEventArgs e)
{
RadComboBox ddlDevice = (RadComboBox)sender;
ddlDevice.DataSource = ds;
ddlDevice.DataMember = TableName;
ddlDevice .DataTextField = textFieldName;
ddlDevice .DataValueField = valueFieldName;
ddlDevice .DataBind();
}
It gives me an error at the DataBind() statement saying
"Selection out of range
Parameter name: Value"
I have some more combos outside of the grid which loads fine with this approach.
Am I doing something wrong here.
The error comes only when I load data for the combo in edit mode. For Insert mode the comboBox behaves correctly.
I also have the GridItemBound event handler where I do this:
protected
void grdActiveWarning_ItemDataBound(object source, Telerik.Web.UI.GridItemEventArgs e)
{
if (e.Item is GridEditableItem && (e.Item as GridEditableItem).IsInEditMode)
{
GridEditableItem editItem = e.Item as GridEditableItem;
RadComboBox ddlDirection = (RadComboBox)(editItem.FindControl("ddlDirectionAW"));
ddlDirection.Text = DataBinder.Eval(e.Item.DataItem, "DirectionValue").ToString();
ddlDirection.SelectedValue = DataBinder.Eval(e.Item.DataItem, "DirectionValue").ToString();
RadComboBox ddlDevice = (RadComboBox)(editItem.FindControl("ddlDeviceAW"));
ddlDevice.Text = DataBinder.Eval(e.Item.DataItem, "DeviceValue").ToString();
ddlDevice.SelectedValue = DataBinder.Eval(e.Item.DataItem, "DeviceValue").ToString();
}
}
Is there something I need to set which I am not doing for the grid?