PDA

View Full Version : [CLOSED] Listeners for Tree Panel (Razor Views)



machinableed
Mar 25, 2012, 2:04 PM
I'm trying to recreate something similar to the tree panel example here: http://examples2.ext.net/#/Form/DropDownField/Overview/ in razor views but it appears that there is no Listeners collection available on the TreePanel. I've tried using the AddListener attribute using something like .AddListener("CheckChange", "this.dropDownField.setValue(getTasks(this), false);") but I'm having no luck with that either... what is the correct way to achieve this in razor views?

thanks

Vladimir
Mar 25, 2012, 7:50 PM
Hi,

Please update from SVN, now TreePanel's Listeners and DirectEvents are available under Razor engine

machinableed
Mar 26, 2012, 2:32 AM
thanks - this is working now

machinableed
Mar 26, 2012, 5:06 AM
In relation to this - I can push the selected nodes text into the drop down list text without too much trouble using a similar javascript function as that in the examples but is there a way that I can push the node Id into the value attribute of the drop down? i.e. I want to display the selected node Text in the Drop Down text, but in the controller I want to access the nodeid's (not the node text) when I retrieve the form values with Request.Form["DDLId"]... Is the possible at all?

Daniil
Mar 26, 2012, 5:51 AM
Hi,

Please investigate:
http://examples2.ext.net/#/Form/DropDownField/ValueText_Mode/

You also might need to set up

SubmitValue="false"
and

<CustomConfig>
<ext:ConfigItem
Name="getHiddenStateName"
Value="function () {
return this.getName();
}"
Mode="Raw" />
</CustomConfig>
to get the behavior where a DropDownField value (nodes ids) will be sent to a server with DropDownField Name (equals its id by default).

machinableed
Mar 26, 2012, 12:29 PM
Trying to implement the Syncvalue as shown in the example and I get the error "Non-invocable member 'Ext.Net.JFunction.Fn' cannot be used like a method." The code I'm using is: .SyncValue(syncValue => syncValue.Fn("syncValue"))

what is the correct way to do this in razor syntax?

Daniil
Mar 26, 2012, 2:10 PM
Example

@(Html.X().DropDownField()
.SyncValue(f =>
f.Fn = "mySyncValue"
)
)

machinableed
Mar 28, 2012, 1:29 AM
I'm still having some trouble with this. The dropdown/tree panel code I'm using is:

fields.Add(Html.X().DropDownField()
.FieldLabel("Product/Service Type")
.ID("ddtServiceType")
.Margins("0 0 0 0")
.LabelWidth(200)
.Width(400)
//.SubmitValue(false)
.Note("Check multiple products/services as required")
.EmptyText("--- Please Select ---")
.Cls("form-label")
.Mode(DropDownMode.ValueText)
.SyncValue(syncValue => syncValue.Fn = "syncValue")
.CustomConfig(customConfig => customConfig.Add(new ConfigItem("getHiddenStateName", "function () {return this.getValue();}", ParameterMode.Raw)))
.Listeners(listeners =>
{
listeners.Expand.Handler = "this.component.getRootNode().expand(true);";
listeners.Expand.Single = true;
listeners.Expand.Delay = 10;

})
.Component(treePanel => treePanel.Add(Html.X().TreePanel()
.Height(300)
.Width(500)
.MinWidth(500)
.RootVisible(false)
.SelectionModel(selectionmodel => selectionmodel.Add(Html.X().TreeSelectionModel().M ode(SelectionMode.Multi)))
.Listeners(listeners =>
{
listeners.CheckChange.Handler = "this.dropDownField.setValue(getValues(this), getText(this), false);";
})
.Root(root =>
{
#region VPLS

root.Add(new Node { Text = "Root" });
root[0].Children.Add(new Node()
{
Text = "VPLS",
NodeID = "ndPrdVPLS",
Leaf = false
});

root[0].Children[0].Children.Add(new Node()
{
Text = "VPLS Access Service",
NodeID = "ndSvcVPLSAccessService",
Leaf = true,
Checked = false
});
root[0].Children[0].Children.Add(new Node()
{
Text = "VPLS Service Delivery Point",
NodeID = "ndSvcVPLSSDP",
Leaf = true,
Checked = false
});
#endregion

#region SDH
root[0].Children.Add(new Node()
{
Text = "SDH",
NodeID = "ndPrdSDH",
Leaf = false
});

root[0].Children[1].Children.Add(new Node()
{
Text = "SDH Access Service",
NodeID = "ndSvcSDHAccessService",
Leaf = true,
Checked = false
});
root[0].Children[1].Children.Add(new Node()
{
Text = "SDH Interface",
NodeID = "ndSvcSDHInterface",
Leaf = true,
Checked = false
});
#endregion

#region EoSDH

root[0].Children.Add(new Node()
{
Text = "EoSDH",
NodeID = "ndPrdEoSDH",
Leaf = false
});

root[0].Children[2].Children.Add(new Node()
{
Text = "EoSDH Access Service",
NodeID = "ndSvcEoSDHAccessService",
Leaf = true,
Checked = false
});

root[0].Children[2].Children.Add(new Node()
{
Text = "EoSDH Interface",
NodeID = "ndSvcEoSDHInterface",
Leaf = true,
Checked = false
});
#endregion


//root[0].Children.Add(new Node()
//{
// Text = "Data Centre Connect",
// NodeID = "ndPrdDCC",
// Leaf = false
//});

//root[0].Children[5].Children.Add(new Node()
//{
// Text = "Access Service",
// NodeID = "ndSvcDCCAccessService",
// Leaf = true,
// Checked = false
//});

//root[0].Children[5].Children.Add(new Node()
//{
// Text = "Interface",
// NodeID = "ndSvcDCCInterface",
// Leaf = true,
// Checked = false
//});

root[0].Children.Add(new Node()
{
Text = "HDDC",
NodeID = "ndPrdHDDC",
Leaf = false
});

root[0].Children[3].Children.Add(new Node()
{
Text = "Cabinet Product",
NodeID = "ndPrdHDDCCabinet",
Leaf = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Floor Space Reservation Service",
NodeID = "CF_HDDC_FloorSpaceReservationService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Cabinet Service",
NodeID = "CF_HDDC_CabinetService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Customer Supplied Cabinet Service",
NodeID = "CF_HDDC_CustomerSuppliedCabinetService",
Leaf = true,
Checked = false
});
root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Power Service",
NodeID = "CF_HDDC_CabinetPowerService",
Leaf = true,
Checked = false
});
root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Portal Service",
NodeID = "CF_HDDC_PortalService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Access Key Service",
NodeID = "CF_HDDC_AccessKeyService",
Leaf = true,
Checked = false
});



root[0].Children[3].Children.Add(new Node()
{
Text = "Access Product",
NodeID = "ndPrdHDDCAccess",
Leaf = false
});

root[0].Children[3].Children[1].Children.Add(new Node()
{
Text = "Access Card Service",
NodeID = "CF_HDDC_AccessCardService",
Leaf = true,
Checked = false
});


root[0].Children[3].Children.Add(new Node()
{
Text = "Maintenance Product",
NodeID = "ndPrdHDDCMaintenance",
Leaf = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Cleaning Service",
NodeID = "CF_HDDC_Maintenance_CleaningService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Waste Removal Service",
NodeID = "CF_HDDC_Maintenance_WasteRemovalService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Afterhour Service",
NodeID = "CF_HDDC_Maintenance_AfterhoursService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Penalty Service",
NodeID = "CF_HDDC_Maintenance_PenaltyService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Miscellaneous Service",
NodeID = "CF_HDDC_Maintenance_MiscellaneousService",
Leaf = true,
Checked = false
});


root[0].Children[3].Children.Add(new Node()
{
Text = "Cross Connect Product",
NodeID = "ndPrdHDDCCrossConnect",
Leaf = false
});

root[0].Children[3].Children[3].Children.Add(new Node()
{
Text = "Cross Connect Service",
NodeID = "CF_HDDC_CrossConnectService",
Leaf = true,
Checked = false
});



root[0].Children.Add(new Node()
{
Text = "P2P Switched Ethernet",
NodeID = "ndPrdSwitchedEthernet",
Leaf = false
});

root[0].Children[4].Children.Add(new Node()
{
Text = "Access Service",
NodeID = "ndSvcSwitchedEthernetAccessService",
Leaf = true,
Checked = false
});

root[0].Children[4].Children.Add(new Node()
{
Text = "Service Delivery Point",
NodeID = "ndSvcSwitchedEthernetSDP",
Leaf = true,
Checked = false
});


})


)));
}));

}

and the javascript:

<script type="text/javascript">
var getValues = function (tree) {
var msg = [],
selNodes = tree.getChecked();

Ext.each(selNodes, function (node) {
msg.push(node.data.id);
});

return msg.join(",");
};

var getText = function (tree) {
var msg = [],
selNodes = tree.getChecked();
msg.push("[");

Ext.each(selNodes, function (node) {
if (msg.length > 1) {
msg.push(",");
}

msg.push(node.data.text);
});

msg.push("]");
return msg.join("");
};

var syncValue = function (value) {
var tree = this.component;

var ids = value.split(",");
tree.setChecked({ ids: ids, silent: true });

tree.getSelectionModel().clearSelections();
Ext.each(ids, function (id) {
var node = tree.store.getNodeById(id);

if (node) {
tree.getSelectionModel().select(node, true);
}
}, this);
};
</script>

I can see that the javascript is running as expected - i.e it appears that the selected nodeids are set as the values and the names are displayed in the drop down field. However when I do a Request.Form["ddtServiceType"] I receive the names and not the nodeIds - I want to see (for example) "CF_HDDC_AccessCardService,CF_HDDC_Maintenance_Clea ningService" but instead I get "[Access Service, Cleaning Service]". What am I doing wrong?

Daniil
Mar 28, 2012, 9:24 AM
Please follow the suggestion in the post #5.

1. Uncomment this:

.SubmitValue(false)

2. Correct the Value of the CustomConfig ConfigItem.
There must be "getName" instead of "getValue".

machinableed
Mar 28, 2012, 10:10 AM
I have already tried that - in that case I receive nothing at the controller. Neither the names or the IDs, just a null value.

Daniil
Mar 28, 2012, 11:17 AM
Confirmed, we are investigating further.

Vladimir
Mar 30, 2012, 5:40 PM
Hi,

Do you have html form? Automatical submit is imppossible without form.
Another option to pass ids as extra parameters

machinableed
Mar 31, 2012, 7:23 AM
The drop down/tree panel is within a formPanel - I assume this renders the form tags as required? or do I have explicitly create the form tags etc.

Vladimir
Apr 01, 2012, 9:48 AM
FormPanel doesn't render form tag in v2 (it is ExtJS 4 behaviour)
How do you submit fields to the server? DirectEvent or "FormPanel1.getForm().submit()"?
Try to update from SVN and retest

machinableed
Apr 01, 2012, 12:45 PM
I'm using a direct event to submit the form - I will do an update and check the form tags in the morning.

Vladimir
Apr 01, 2012, 1:04 PM
Hi,

If you use direct event then you have to add html form or pass required info as extra parameters

machinableed
Apr 02, 2012, 3:19 AM
I have enclosed the code in form tags and I still have the same problem - with SubmitValue(false) included on the DropDownField, nothing at all is submitted for that drop down i.e. ddtServiceType doesn't appear in the Request.Form collection at all. With SubmitValue(false) commented out, it still sends the node text rather than the node value.

I'm also unsure about how to go about sending extra parameters back to the controller - perhaps a MVC/razor example using CustomConfig would be helpful to me?

Daniil
Apr 02, 2012, 12:57 PM
I'm also unsure about how to go about sending extra parameters back to the controller - perhaps a MVC/razor example using CustomConfig would be helpful to me?

Example View

@{
Layout = "";
}

<!DOCTYPE html>
<html>
<head>
<title>Ext.NET Razor Example</title>
</head>
<body>
@Html.X().ResourceManager()

@(Html.X().Button()
.Text("I am the Buttom with Click DirectEvent")

.DirectEvents(directEvents => {
directEvents.Click.Url = "/Examples/HelloWorld";
directEvents.Click.ExtraParams.Add(new Parameter("text", "Hello World!", ParameterMode.Value));
})
)
</body>
</html>

Example Controller Action

public ActionResult HelloWorld(string text)
{
string script = X.Msg.Alert("DirectEvent", text).ToScript();
return new AjaxResult(script);
}


I have enclosed the code in form tags and I still have the same problem - with SubmitValue(false) included on the DropDownField, nothing at all is submitted for that drop down i.e. ddtServiceType doesn't appear in the Request.Form collection at all. With SubmitValue(false) commented out, it still sends the node text rather than the node value.

SubmitValue should be true, it's be default.

How do you access a value within a controller action? Should be:

values[dropDownFieldId + "_value"]

If the issue persists, please provide a full sample to reproduce.

machinableed
Apr 03, 2012, 7:19 AM
The problem still exists - it's probably to do with the way I'm trying to access the parameter in the controller. Full code that shows the problem:


@{
ViewBag.Title = "Service Manager";
Layout = "";
}

<!DOCTYPE html>

<html>
<head>
<title>Service Manager</title>
<link rel="stylesheet" type="text/css" href="/resources/css/main.css" />
<style type="text/css">
.search-item {
font : normal 11px tahoma, arial, helvetica, sans-serif;
padding : 3px 10px 3px 10px;
border : 1px solid #fff;
border-bottom : 1px solid #eeeeee;
white-space : normal;
color : #555;
}

.search-item h3 {
display : block;
font : inherit;
font-weight : bold;
color : #222;
margin :0px;
}

.search-item h3 span {
float : right;
font-weight : normal;
margin : 0 0 5px 5px;
width : 100px;
display : block;
clear : none;
}

p { width: 650px; }

.ext-ie .x-form-text { position : static !important; }
</style>
<script type="text/javascript">
var getValues = function (tree) {
var msg = [],
selNodes = tree.getChecked();

Ext.each(selNodes, function (node) {
msg.push(node.data.id);
});

return msg.join(",");
};

var getText = function (tree) {
var msg = [],
selNodes = tree.getChecked();
msg.push("[");

Ext.each(selNodes, function (node) {
if (msg.length > 1) {
msg.push(",");
}

msg.push(node.data.text);
});

msg.push("]");
return msg.join("");
};

var syncValue = function (value) {
var tree = this.component;

var ids = value.split(",");
tree.setChecked({ ids: ids, silent: true });

tree.getSelectionModel().clearSelections();
Ext.each(ids, function (id) {
var node = tree.store.getNodeById(id);

if (node) {
tree.getSelectionModel().select(node, true);
}
}, this);
};
</script>
</head>
<body>
<div>
@using (Html.BeginForm("Search", "Services", FormMethod.Post, new { id = "form1" }))
{

@(Html.X().ResourceManager()
.Theme(Theme.Gray)
)


@(Html.X().Viewport()
.Layout(LayoutType.Container)
.Items(pn =>
{
pn.Add(Html.X().FormPanel()
.Region(Region.North)
.Collapsible(true)
.Title("Enter Search Criteria")
.BodyPadding(4)
.Layout(LayoutType.Column)
.AutoHeight(true)
.Buttons(buttons =>
{
buttons.Add(Html.X().Button()
.DirectEvents(directEvents =>
{
//directEvents.Click.
directEvents.Click.Url = "/Services/Clear";
})
.Text("Clear"));

buttons.Add(Html.X().Button()
.DirectEvents(directEvents =>
{
directEvents.Click.Url = "/Services/SearchTest";
})
.Text("Search"));
buttons.Add(Html.X().Button()
.Listeners(t =>
{
t.Click.Handler = "alert(#{ddtServiceType}.getValue());";
})
.Text("Get Values"));
})
.Items(containers =>
{

containers.Add(Html.X().FieldContainer()
.Layout(LayoutType.Anchor)
.Padding(10)
.Margins("0 0 0 10")
.Items(fields =>
{
fields.Add(Html.X().DropDownField()
.FieldLabel("Product/Service Type")
.ID("ddtServiceType")
.Name("ddtServiceType")
.Margins("0 0 0 0")
.LabelWidth(200)
.Width(400)
// .SubmitValue(false)
.Note("Check multiple products/services as required")
.EmptyText("--- Please Select ---")
.Cls("form-label")
.Mode(DropDownMode.ValueText)
.SyncValue(syncValue => syncValue.Fn = "syncValue")
.CustomConfig(customConfig => customConfig.Add(new ConfigItem("getHiddenStateName", "function () {return this.getName();}", ParameterMode.Raw)))
.Listeners(listeners =>
{
listeners.Expand.Handler = "this.component.getRootNode().expand(true);";
listeners.Expand.Single = true;
listeners.Expand.Delay = 10;

})
.Component(treePanel => treePanel.Add(Html.X().TreePanel()
.Height(300)
.Width(500)
.MinWidth(500)
.RootVisible(false)
.SelectionModel(selectionmodel => selectionmodel.Add(Html.X().TreeSelectionModel().M ode(SelectionMode.Multi)))
.Listeners(listeners =>
{
listeners.CheckChange.Handler = "this.dropDownField.setValue(getValues(this), getText(this), false);";
})
.Root(root =>
{
#region VPLS

root.Add(new Node { Text = "Root" });
root[0].Children.Add(new Node()
{
Text = "VPLS",
NodeID = "ndPrdVPLS",
Leaf = false
});

root[0].Children[0].Children.Add(new Node()
{
Text = "VPLS Access Service",
NodeID = "ndSvcVPLSAccessService",
Leaf = true,
Checked = false
});
root[0].Children[0].Children.Add(new Node()
{
Text = "VPLS Service Delivery Point",
NodeID = "ndSvcVPLSSDP",
Leaf = true,
Checked = false
});
#endregion

#region SDH
root[0].Children.Add(new Node()
{
Text = "SDH",
NodeID = "ndPrdSDH",
Leaf = false
});

root[0].Children[1].Children.Add(new Node()
{
Text = "SDH Access Service",
NodeID = "ndSvcSDHAccessService",
Leaf = true,
Checked = false
});
root[0].Children[1].Children.Add(new Node()
{
Text = "SDH Interface",
NodeID = "ndSvcSDHInterface",
Leaf = true,
Checked = false
});
#endregion

#region EoSDH

root[0].Children.Add(new Node()
{
Text = "EoSDH",
NodeID = "ndPrdEoSDH",
Leaf = false
});

root[0].Children[2].Children.Add(new Node()
{
Text = "EoSDH Access Service",
NodeID = "ndSvcEoSDHAccessService",
Leaf = true,
Checked = false
});

root[0].Children[2].Children.Add(new Node()
{
Text = "EoSDH Interface",
NodeID = "ndSvcEoSDHInterface",
Leaf = true,
Checked = false
});
#endregion


//root[0].Children.Add(new Node()
//{
// Text = "Data Centre Connect",
// NodeID = "ndPrdDCC",
// Leaf = false
//});

//root[0].Children[5].Children.Add(new Node()
//{
// Text = "Access Service",
// NodeID = "ndSvcDCCAccessService",
// Leaf = true,
// Checked = false
//});

//root[0].Children[5].Children.Add(new Node()
//{
// Text = "Interface",
// NodeID = "ndSvcDCCInterface",
// Leaf = true,
// Checked = false
//});

root[0].Children.Add(new Node()
{
Text = "HDDC",
NodeID = "ndPrdHDDC",
Leaf = false
});

root[0].Children[3].Children.Add(new Node()
{
Text = "Cabinet Product",
NodeID = "ndPrdHDDCCabinet",
Leaf = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Floor Space Reservation Service",
NodeID = "CF_HDDC_FloorSpaceReservationService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Cabinet Service",
NodeID = "CF_HDDC_CabinetService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Customer Supplied Cabinet Service",
NodeID = "CF_HDDC_CustomerSuppliedCabinetService",
Leaf = true,
Checked = false
});
root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Power Service",
NodeID = "CF_HDDC_CabinetPowerService",
Leaf = true,
Checked = false
});
root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Portal Service",
NodeID = "CF_HDDC_PortalService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[0].Children.Add(new Node()
{
Text = "Access Key Service",
NodeID = "CF_HDDC_AccessKeyService",
Leaf = true,
Checked = false
});



root[0].Children[3].Children.Add(new Node()
{
Text = "Access Product",
NodeID = "ndPrdHDDCAccess",
Leaf = false
});

root[0].Children[3].Children[1].Children.Add(new Node()
{
Text = "Access Card Service",
NodeID = "CF_HDDC_AccessCardService",
Leaf = true,
Checked = false
});


root[0].Children[3].Children.Add(new Node()
{
Text = "Maintenance Product",
NodeID = "ndPrdHDDCMaintenance",
Leaf = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Cleaning Service",
NodeID = "CF_HDDC_Maintenance_CleaningService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Waste Removal Service",
NodeID = "CF_HDDC_Maintenance_WasteRemovalService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Afterhour Service",
NodeID = "CF_HDDC_Maintenance_AfterhoursService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Penalty Service",
NodeID = "CF_HDDC_Maintenance_PenaltyService",
Leaf = true,
Checked = false
});

root[0].Children[3].Children[2].Children.Add(new Node()
{
Text = "Miscellaneous Service",
NodeID = "CF_HDDC_Maintenance_MiscellaneousService",
Leaf = true,
Checked = false
});


root[0].Children[3].Children.Add(new Node()
{
Text = "Cross Connect Product",
NodeID = "ndPrdHDDCCrossConnect",
Leaf = false
});

root[0].Children[3].Children[3].Children.Add(new Node()
{
Text = "Cross Connect Service",
NodeID = "CF_HDDC_CrossConnectService",
Leaf = true,
Checked = false
});



root[0].Children.Add(new Node()
{
Text = "P2P Switched Ethernet",
NodeID = "ndPrdSwitchedEthernet",
Leaf = false
});

root[0].Children[4].Children.Add(new Node()
{
Text = "Access Service",
NodeID = "ndSvcSwitchedEthernetAccessService",
Leaf = true,
Checked = false
});

root[0].Children[4].Children.Add(new Node()
{
Text = "Service Delivery Point",
NodeID = "ndSvcSwitchedEthernetSDP",
Leaf = true,
Checked = false
});


})


)));
}));


})
);
})
);


}
</div>
</body>
</html>

Controller code:

public AjaxResult SearchTest()
{
AjaxResult result = new AjaxResult();
var ddtServiceType = Request["ddtServiceType_Value"];

return result;
}

I've tried several variations to set ddtServiceType but with no luck - it's always null. I can get selected text across but not the values...

Daniil
Apr 03, 2012, 12:37 PM
Thanks for the sample.

Please access a value this way:

Request["ddtServiceType"]

Daniil
Apr 03, 2012, 12:51 PM
I've just discovered.

.CustomConfig(customConfig => customConfig.Add(new ConfigItem("getHiddenStateName", "function () {return this.getName();}", ParameterMode.Raw)))

Please remove, it is not required with the latest sources.

And get a value this way:

Request["ddtServiceType_value"]

The lower-case "_value".

machinableed
Apr 04, 2012, 4:06 AM
I have done that and i'm still experiencing the same error:
Request["ddtServiceType_value"] is returning the Text rather than the Values

machinableed
Apr 04, 2012, 4:18 AM
Actually... scratch that - I just rebuilt from SVN and it is working now. I guess something must have changed in the last 2 days.

thanks!

Daniil
Apr 04, 2012, 8:48 AM
Well, yes, I thought you've updated after:
http://forums.ext.net/showthread.php?18024&p=78259&viewfull=1#post78259

machinableed
Apr 04, 2012, 8:56 AM
Sorry I thought that I had - I must have either updated slightly prior to that build or maybe my references were screwed up and looking at an older version.