Jul 18, 2011, 10:26 AM
Can you provide a full example to copy/paste and run? Then I will try to investigate what is going wrong.
<%@ Page Language="C#" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<script runat="server">
public class Data
{
public int ID { get; set; }
public int State { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
this.BindData();
}
}
private void BindData()
{
this.GridPanel1.Store.Primary.DataSource = this.GetData();
this.GridPanel1.Store.Primary.DataBind();
}
private List<Data> GetData()
{
return new List<Data>
{
new Data { ID = 1, State = 0 },
new Data { ID = 2, State = 1 },
new Data { ID = 3, State = 2}
};
}
</script>
<!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 runat="server">
<title>Ext.Net Example</title>
<script type="text/javascript">
var beforeDestroy = function () {
try {
Ext.destroy(this.panel);
}
catch (e) {
}
Ext.form.CheckboxGroup.superclass.beforeDestroy.call(this);
};
var checkHandler = function () {
(function () { this.group.fireEvent('blur', this.group) }).defer(10, this);
return false;
};
var initName = function () {
this.name = this.group.id;
var url = '';
switch (this.inputValue) {
case "0":
url = '/resources/images/imgQuestion.png';
break;
case "1":
url = '/resources/images/imgValid.png';
break;
case "2":
url = '/resources/images/imgDenied.png';
break;
}
if (url.length > 0)
this.boxLabel = "<image src='" + url + "' />";
};
var getValue = function () {
var out = null;
this.eachItem(function (item) {
if (item.checked) {
out = item.inputValue;
return false;
}
});
return out;
};
</script>
</head>
<body>
<form runat="server">
<ext:ResourceManager runat="server" />
<ext:Viewport runat="server" Layout="Fit">
<Items>
<ext:GridPanel
ID="GridPanel1"
runat="server"
Header="false"
Border="false"
AutoExpandColumn="State"
TrackMouseOver="true"
StripeRows="true"
UseIdConfirmation="true">
<Store>
<ext:Store runat="server">
<Reader>
<ext:JsonReader IDProperty="ID">
<Fields>
<ext:RecordField Name="ID" Type="Int" />
<ext:RecordField Name="State" Type="Int" />
</Fields>
</ext:JsonReader>
</Reader>
</ext:Store>
</Store>
<Plugins>
<ext:EditableGrid ID="EditableGrid1" runat="server" />
</Plugins>
<ColumnModel runat="server">
<Columns>
<ext:Column ColumnID="ID" DataIndex="ID" Header="ID" Width="80">
<Renderer Handler="return Ext.util.Format.htmlEncode(value);" />
</ext:Column>
<ext:Column ColumnID="State" DataIndex="State" Width="160" Header="State">
<Editor>
<ext:RadioGroup runat="server" ID="GroupNumber"
BeforeDestroy="={beforeDestroy}"
GetValue="={getValue}">
<Items>
<ext:Radio runat="server" IDMode="Explicit" InputValue="0">
<Listeners>
<BeforeRender Fn="initName" />
<Check Fn="checkHandler" />
</Listeners>
</ext:Radio>
<ext:Radio runat="server" IDMode="Explicit" InputValue="1">
<Listeners>
<BeforeRender Fn="initName" />
<Check Fn="checkHandler" />
</Listeners>
</ext:Radio>
<ext:Radio runat="server" IDMode="Explicit" InputValue="2">
<Listeners>
<BeforeRender Fn="initName" />
<Check Fn="checkHandler" />
</Listeners>
</ext:Radio>
</Items>
<Listeners>
<BeforeRender Handler="Ext.each(this.items, function(item){item.group = this;}, this);" />
</Listeners>
</ext:RadioGroup>
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel runat="server" SingleSelect="true" />
</SelectionModel>
</ext:GridPanel>
</Items>
</ext:Viewport>
</form>
</body>
</html>
Regards,