Protected Sub RadGrid1_ItemDataBound(sender As Object, e As GridItemEventArgs) Handles RadGrid1.ItemDataBound ' Display booleans with text labels when grid is not in editing mode If TypeOf e.Item Is GridDataItem AndAlso Not e.Item.IsInEditMode Then Dim item As GridDataItem = DirectCast(e.Item, GridDataItem) Dim verifiedCheck As Boolean = DirectCast(item("IsVerified").Controls(0), CheckBox).Checked Dim activeCheck As Boolean = DirectCast(item("IsActive").Controls(0), CheckBox).Checked Dim approvedCheck As Boolean = DirectCast(item("IsApproved").Controls(0), CheckBox).Checked Dim lockedCheck As Boolean = DirectCast(item("IsLockedOut").Controls(0), CheckBox).Checked If verifiedCheck Then item("IsVerified").Text = "<span class=""label label-success autowidth"">Ok</span>" Else item("IsVerified").Text = "<span class=""label label-warning autowidth"">No</span>" End If If activeCheck Then item("IsActive").Text = "<span class=""label label-success autowidth"">Ok</span>" Else item("IsActive").Text = "<span class=""label label-important autowidth"">No</span>" End If If approvedCheck Then item("IsApproved").Text = "<span class=""label label-success autowidth"">Ok</span>" Else item("IsApproved").Text = "<span class=""label label-warning autowidth"">No</span>" End If If lockedCheck Then item("IsLockedOut").Text = "<span class=""label label-warning autowidth"">Ok</span>" Else item("IsLockedOut").Text = "<span class=""label label-success autowidth"">No</span>" End If End IfEnd SubI've built an ASP.NET composite control which includes several asp label controls, two textbox controls and a button control. The composite control functions perfectly - without having any of the above controls ajaxified - in a parent page that already has a RadAjaxManager.
Now I want to ajaxify the composite control. I followed the various examples and sample code, but no matter which way I arrange the code, when I ajaxify the the button, two text boxes and a label in the composite control and click the button, I always get alternating full postback and asynchronous (partial) postback. (So I get the effect I want every other button click.)
// in CreateChildControls I added:
RadAjaxManager objTelerikAjaxManager = RadAjaxManager.GetCurrent(Page);
if (objTelerikAjaxManager == null)
{
objTelerikAjaxManager = new RadAjaxManager();
objTelerikAjaxManager.ID = "RadAjaxManager1";
Controls.Add(objTelerikAjaxManager);
}
.
.
// create controls and add to collection, then:
.
.
objTelerikAjaxManager.AjaxSettings.AddAjaxSetting(objFELoginControlButtonLogin, objFELoginControlButtonLogin);
objTelerikAjaxManager.AjaxSettings.AddAjaxSetting(objFELoginControlButtonLogin, objFELoginControlLabelMessage);
objTelerikAjaxManager.AjaxSettings.AddAjaxSetting(objFELoginControlButtonLogin, objFELoginControlTextBoxUser);
objTelerikAjaxManager.AjaxSettings.AddAjaxSetting(objFELoginControlButtonLogin, objFELoginControlTextBoxAppID);
What am I missing and what should I check? Is there an alternative recommendation for placing the above code blocks?
Thanks
<telerik:GridTemplateColumn DataField="bldgstreet1" FilterControlAltText="Filter address column" HeaderText="Address" SortExpression="address" UniqueName="addressTemplate">
<EditItemTemplate>
<asp:TextBox ID="address1" runat="server" Text='<%# Bind("bldgstreet1") %>'></asp:TextBox><br />
<asp:TextBox ID="address2" runat="server" Text='<%# Bind("bldgstreet2") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="address1" runat="server" Text='<%# Bind("bldgstreet1") %>'></asp:TextBox><br />
<asp:TextBox ID="address2" runat="server" Text='<%# Bind("bldgstreet2") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="addressLabel" runat="server" Text='<%# Eval("bldgstreet1") + " " + Eval("bldgstreet2") %>'></asp:Label>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="bldgcity" FilterControlAltText="Filter bldgcity column" HeaderText="City" SortExpression="bldgcity" UniqueName="bldgcity">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="bldgstate" FilterControlAltText="Filter bldgstate column" HeaderText="State" SortExpression="bldgstate" UniqueName="bldgstate">
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="bldgzip" FilterControlAltText="Filter bldgzip column" HeaderText="Zip" SortExpression="bldgzip" UniqueName="bldgzip">
</telerik:GridBoundColumn>
protected void CertifyAddressImageButton_Click(object sender, ImageClickEventArgs e){ foreach (GridEditableItem item in gdvBuilding.EditItems) { string bldgname = ((TableCell)item["bldgname"]).Text.Trim(); Debug.WriteLine("bldgname=" + bldgname); string zip = ((TableCell)item["bldgzip"]).Text.Trim(); Debug.WriteLine("zip=" + zip); TableCell cell = item["addressTemplate"]; string address1 = (cell.Controls[0] as TextBox).Text; // This also doesn't work // string address1 = (item.FindControl("address1") as TextBox).Text; // Debug.WriteLine("address=" + address1); Debug.WriteLine("address=" + address1); } //CertifyAddress();}