You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2005/11/15 19:00:11 UTC
svn commit: r344402 - in /struts/sandbox/trunk/overdrive/Nexus:
Core/IKeyValueList.cs Core/KeyValueList.cs Web/GridControl.ascx.cs
Author: husted
Date: Tue Nov 15 09:59:59 2005
New Revision: 344402
URL: http://svn.apache.org/viewcvs?rev=344402&view=rev
Log:
OVR-21
* Extend KeyValue list to provide a value lookup for a key
* Add a KeyValueTemplate to map a key to its value.
Modified:
struts/sandbox/trunk/overdrive/Nexus/Core/IKeyValueList.cs
struts/sandbox/trunk/overdrive/Nexus/Core/KeyValueList.cs
struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
Modified: struts/sandbox/trunk/overdrive/Nexus/Core/IKeyValueList.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/IKeyValueList.cs?rev=344402&r1=344401&r2=344402&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/IKeyValueList.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/IKeyValueList.cs Tue Nov 15 09:59:59 2005
@@ -7,5 +7,6 @@
/// </summary>
public interface IKeyValueList : IList
{
+ string ValueFor(string key);
}
}
Modified: struts/sandbox/trunk/overdrive/Nexus/Core/KeyValueList.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/KeyValueList.cs?rev=344402&r1=344401&r2=344402&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/KeyValueList.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/KeyValueList.cs Tue Nov 15 09:59:59 2005
@@ -1,3 +1,4 @@
+using System;
using System.Collections;
namespace Nexus.Core
@@ -28,5 +29,14 @@
}
}
+ public string ValueFor(string key)
+ {
+ if ((key==null) || (key.Equals(String.Empty))) return key;
+ foreach (IKeyValue kv in this)
+ {
+ if (key.Equals(kv.Key)) return kv.Value as string;
+ }
+ return null;
+ }
}
}
Modified: struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs?rev=344402&r1=344401&r2=344402&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs Tue Nov 15 09:59:59 2005
@@ -1009,7 +1009,7 @@
private string _DataField;
- private void LiteralTemplate_DataBinding(object sender, EventArgs e)
+ private void OnDataBinding(object sender, EventArgs e)
{
Literal lc;
lc = (Literal) sender;
@@ -1021,7 +1021,7 @@
{
Literal lc = new Literal();
lc.ID = _DataField;
- lc.DataBinding += new EventHandler(LiteralTemplate_DataBinding);
+ lc.DataBinding += new EventHandler(OnDataBinding);
container.Controls.Add(lc);
}
@@ -1031,23 +1031,77 @@
}
}
+ public class KeyValueTemplate : ITemplate
+ {
+
+ private string _DataField;
+ private IKeyValueList _List;
+
+ private void OnDataBinding(object sender, EventArgs e)
+ {
+ Literal lc;
+ lc = (Literal) sender;
+ DataGridItem container = (DataGridItem) lc.NamingContainer;
+ string key = DataBinder.Eval(container.DataItem, _DataField) as string;
+ lc.Text = _List.ValueFor(key);
+ }
+
+ public void InstantiateIn(Control container)
+ {
+ Literal lc = new Literal();
+ lc.ID = _DataField;
+ lc.DataBinding += new EventHandler(OnDataBinding);
+ container.Controls.Add(lc);
+ }
+
+ public KeyValueTemplate (string dataField, IKeyValueList list)
+ {
+ _DataField = dataField;
+ _List = list;
+ }
+ }
+
public class DropDownListTemplate : ITemplate
{
+ private string _DataField;
private DropDownList _List;
+ private void OnDataBinding(object sender, EventArgs e)
+ {
+ DropDownList _list;
+ _list = (DropDownList) sender;
+ DataGridItem container = (DataGridItem) _list.NamingContainer;
+ object key = DataBinder.Eval(container.DataItem, _DataField);
+ string item = key.ToString();
+ _list.SelectedValue = item;
+ }
+
public void InstantiateIn(Control container)
{
container.Controls.Add(_List);
+ _List.DataBinding += new EventHandler(OnDataBinding);
}
public DropDownListTemplate(string id, object dataSource)
{
+ _DataField = id;
_List = new DropDownList();
_List.ID = id;
_List.DataSource = dataSource;
_List.DataBind();
}
+
+ public DropDownListTemplate(string id, IKeyValueList list)
+ {
+ _DataField = id;
+ _List = new DropDownList();
+ _List.ID = id;
+ _List.DataSource = list;
+ _List.DataTextField = "key";
+ _List.DataValueField = "value";
+ _List.DataBind();
+ }
}
#endregion
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org