Feb 23, 2012, 5:47 AM
[CLOSED] dynamically added custom controls not rendered in fieldset
Hi Daniil,
I have created few custom controls of type combobox, multicombo,fileuploadfield,Time etc. This controls are added dynamically to fieldset. But they are not rendered. I have given the sample code below. Please advise.
Anulekha
I have created few custom controls of type combobox, multicombo,fileuploadfield,Time etc. This controls are added dynamically to fieldset. But they are not rendered. I have given the sample code below. Please advise.
ASPX
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>Ext.Net.MVC Example</title>
<script type="text/javascript">
var AddCustomFields = function (controls, args) {
//Ext.net.DirectMethod.request({ method: 'POST', url: '/Home/AddTextField/', params: { containerId: args.container.id} });
Ext.net.DirectMethod.request({
url: '/Home/AddTextField/',
cleanRequest: true,
params: {
containerId: args.container.id
}
});
}
</script>
</head>
<body>
<ext:ResourceManager ID="ResourceManager1" runat="server" />
<ext:Panel ID="ReqCustomFldsPnl" runat="server" Border="false" BodyStyle="background-color: #DFE8F6"
Padding="5" AutoDoLayout="true" Layout="FitLayout">
<Items>
<ext:FieldSet ID="fldstReqCustomFlds" runat="server" Title="CustomFields" AutoHeight="true"
Padding="5" LabelWidth="75" CollapseMode="Mini" AutoDoLayout="true" Collapsed="true"
Collapsible="true" Layout="FormLayout" AnchorHorizontal="95%" AutoScroll="true"
AnchorVertical="100%">
<Items>
<ext:FormPanel ID="IRReqHdrCustomFieldsContainer" runat="server" Padding="6" BodyStyle="background-color: #DFE8F6"
ForceLayout="true" Layout="FormLayout" HideLabels="true" BodyBorder="false" Border="false">
</ext:FormPanel>
</Items>
<Listeners>
<Expand Handler="AddCustomFields('undefined',{container:#{IRReqHdrCustomFieldsContainer},entityType:'Issue Requisition Header',entityID:''}); " />
</Listeners>
</ext:FieldSet>
</Items>
</ext:Panel>
</body>
</html>
Controller
public ActionResult ExtraFields()
{
return View();
}
public ActionResult AddTextField(string containerId)
{
TextField tf1 = new TextField() { FieldLabel = "FieldLalel1", Text = "Hello World 1!" };
string script = tf1.ToScript(RenderMode.AddTo, containerId);
NxtFileUpload file = new NxtFileUpload();
script = script + file.ToScript(RenderMode.AddTo, containerId);
NxtDropDownList n = new NxtDropDownList();
script = script + n.ToScript(RenderMode.AddTo, containerId);
NxtSimpleDateTime t = new NxtSimpleDateTime();
script = script + t.ToScript(RenderMode.AddTo, containerId);
NxtSimpleTime time = new NxtSimpleTime();
script = script + time.ToScript(RenderMode.AddTo, containerId);
NxtYesNo YN = new NxtYesNo();
script = script + time.ToScript(RenderMode.AddTo, containerId);
NxtMultiSelect m = new NxtMultiSelect();
script = script + m.ToScript(RenderMode.AddTo, containerId);
return new AjaxResult(script);
}
public class NxtSimpleDateTime : FormPanel
{
DateField date = new DateField();
TimeField time = new TimeField();
public NxtSimpleDateTime()
{
this.Width = 400;
this.date.Width = 200;
this.date.FieldLabel = "Date";
this.time.Width = 100;
this.time.FieldLabel = "Time";
this.time.Format = "H:mm";
this.Items.Add(this.date);
this.Items.Add(this.time);
}
}
public class NxtSimpleTime : TimeField
{
public NxtSimpleTime()
{
this.Format = "H:mm";
this.Width = 300;
}
}
public class NxtYesNo : ComboBox
{
public NxtYesNo()
{
ListItem Yes = new ListItem();
Yes.Value = "Yes";
Yes.Text = "Yes";
this.Items.Add(Yes);
ListItem No = new ListItem();
No.Value = "No";
No.Text = "No";
this.Items.Add(No);
this.Width = 100;
}
}
public class NxtMultiSelect : Ext.Net.MultiCombo
{
public NxtMultiSelect()
{
this.Width = 300;
}
}
ThanksAnulekha
Last edited by Daniil; Feb 24, 2012 at 3:05 PM.
Reason: [CLOSED]