Apr 17, 2012, 9:00 AM
[CLOSED] Submit combobox value within an editable gridview
Hi,
How to submit combobox value within an editable gridview ?
This is the gridview code :
PS: I populate combobox with a datatable result to simplify issue I implemented a listItem.
How to submit combobox value within an editable gridview ?
This is the gridview code :
<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
<!DOCTYPE html>
<html>
<head runat="server">
<meta name="viewport" content="width=device-width" />
</head>
<body>
<ext:ResourceManager runat="server">
</ext:ResourceManager>
<ext:GridPanel ID="GridPanelUsrGroup" runat="server" Header="false" Border="false"
TrackMouseOver="true" AutoWidth="true" AutoHeight="true">
<View>
<ext:GridView ID="GridView1" runat="server" ForceFit="true" />
</View>
<Store>
<ext:Store ID="dsUsrGroup" runat="server" RemoteSort="true">
<UpdateProxy>
<ext:HttpWriteProxy Url="/Research/AssignUserGroup">
</ext:HttpWriteProxy>
</UpdateProxy>
<Reader>
<ext:JsonReader IDProperty="group_id" Root="data" TotalProperty="total">
<Fields>
<ext:RecordField Name="group_id">
</ext:RecordField>
<ext:RecordField Name="Supervisor">
<Convert Handler="return value === 'Y' ? true : false;" />
</ext:RecordField>
</Fields>
</ext:JsonReader>
</Reader>
<WriteBaseParams>
<ext:Parameter Name="userId" Value="190" Mode="Value" AutoDataBind="true">
</ext:Parameter>
</WriteBaseParams>
<Listeners>
<Save Handler="Ext.net.Notification.show({iconCls: 'icon-information', html : arg.message, title : 'Success', hideDelay : 5000});" />
<Exception Handler="Ext.net.Notification.show({iconCls: 'icon-exclamation', html : e && e.message ? e.message : response.message || response.statusText, title : 'EXCEPTION', hideDelay : 5000});" />
</Listeners>
</ext:Store>
</Store>
<ColumnModel ID="ColumnModelUsrGroup" runat="server">
<Columns>
<ext:CheckColumn ColumnID="_groupSupervisor" DataIndex="Supervisor" Header="Supervisor"
Editable="true">
</ext:CheckColumn>
<ext:Column ColumnID="_groupShortname" DataIndex="group_id" Header="Group shortname"
Editable="true">
<Editor>
<ext:ComboBox ID="_comboGroupShortname" runat="server" AutoDataBind="true" AnchorHorizontal="25%"
SubmitValue="true">
<Items>
<ext:ListItem Value="1" Text="X" />
<ext:ListItem Value="2" Text="Y" />
</Items>
</ext:ComboBox>
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<TopBar>
<ext:Toolbar ID="Toolbar1" runat="server">
<Items>
<ext:Button ID="Button1" runat="server" Text="Save" Icon="Disk">
<Listeners>
<Click Handler="#{dsUsrGroup}.save();" />
</Listeners>
</ext:Button>
<ext:Button ID="Button3" runat="server" Text="Add" Icon="Add">
<Listeners>
<Click Handler="#{GridPanelUsrGroup}.insertRecord(0, {});#{GridPanelUsrGroup}.getView().focusRow(0);#{GridPanelUsrGroup}.startEditing(0, 0);" />
</Listeners>
</ext:Button>
<ext:ToolbarSeparator ID="ToolbarSeparator1" runat="server" />
<ext:Label ID="Label1" runat="server" Text="(Double-Click Row to Edit)" />
</Items>
</ext:Toolbar>
</TopBar>
<SelectionModel>
<ext:RowSelectionModel ID="RowSelectionModelUserGrp" runat="server" />
</SelectionModel>
<BottomBar>
<ext:PagingToolbar ID="PagingToolbarUserGrp" runat="server" PageSize="5" />
</BottomBar>
<LoadMask ShowMask="true" />
<SaveMask ShowMask="true" />
</ext:GridPanel>
</body>
</html>
This is the action that submit values :
public AjaxStoreResult AssignUserGroup(int userId)
{
AjaxStoreResult ajaxStoreResult = new AjaxStoreResult(StoreResponseFormat.Save);
try
{
StoreDataHandler dataHandler = new StoreDataHandler(HttpContext.Request["data"]);
ChangeRecords<user_group> data = dataHandler.ObjectData<user_group>();
foreach (user_group usrGroup in data.Created)
{
if (usrGroup.Supervisor.Equals("True"))
{
usrGroup.Supervisor = "Y";
}
usrGroup.user_id = userId;
//_userGroupRepository.Add(usrGroup);
}
ajaxStoreResult.SaveResponse.Success = true;
ajaxStoreResult.SaveResponse.Message = "Success";
}
catch (Exception e)
{
ajaxStoreResult.SaveResponse.Success = false;
ajaxStoreResult.SaveResponse.Message = e.Message;
}
return ajaxStoreResult;
}
This is the class user group : public class user_group
{
public int user_id
{
get;
set;
}
public int group_id
{
get;
set;
}
private int _group_id;
public string Supervisor
{
get;
set;
}
When I debug AssignUserGroup action I found group_id = 0.PS: I populate combobox with a datatable result to simplify issue I implemented a listItem.
Last edited by Daniil; Apr 18, 2012 at 9:10 AM.
Reason: [CLOSED]