Я пишу сайт, который использует строго типизированные наборы данных.
Администратор БД, создавший созданную таблицу, дал столбцу значение, представляющее минус. Столбец является Do_Not_Estimate_Flag, где столбец может содержать «T» или «F». Я не могу изменить основную таблицу или логику, которая ее заполняет. Я хочу добавить столбец ESTIMATION_ALLOWED в DataRow моего строго типизированного DataSet. Я сделал это, используя частичный класс, который я могу изменить. (Существует автоматически сгенерированный частичный класс и не сгенерированный частичный класс, который я могу безопасно изменить.) Логика находится в свойстве частного класса. Беда в том, что при загрузке значения аля
<%#DataBinder.Eval(Container.DataItem, "ESTIMATION_ALLOWED")%>
идет прямо к базовому DataRow, игнорируя мое свойство. Как лучше всего достичь желаемого результата?
вот мой код:
частичный класс MyFunkyDataTable
{
private System.Data.DataColumn columnESTIMATION_ALLOWED;
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public System.Data.DataColumn ESTIMATION_ALLOWEDColumn
{
get
{
return columnESTIMATION_ALLOWED;
}
}
public override void EndInit()
{
//init class
columnESTIMATION_ALLOWED = new System.Data.DataColumn("ESTIMATION_ALLOWED", typeof(string), null, global::System.Data.MappingType.Element);
Columns.Add(columnESTIMATION_ALLOWED);
columnESTIMATION_ALLOWED.ReadOnly = true;
//init Vars
columnESTIMATION_ALLOWED = Columns["ESTIMATION_ALLOWED"];
base.EndInit();
}
}
partial class MyFunkyRow
{
public string ESTIMATION_ALLOWED
{
get
{
if(DO_NOT_EST_FLAG == "N")
{
return "Yes";
}
return "No";
}
}
}