Настраивать вывод источника данных в повторителе? - PullRequest
0 голосов
/ 03 октября 2011

У меня есть повторитель данных, подключенный к источнику данных (объекту данных). Мне нужно изменить вывод на веб-интерфейс для определенных столбцов при определенных условиях. Какой самый эффективный способ сделать это?

В настоящее время я пытаюсь создать отформатированный вывод и назначить его другому источнику данных и использовать его в качестве источника данных, но он кажется слишком сложным и что-то, что было бы сложно поддерживать.

Есть ли более простой способ манипулировать значениями столбцов для источника данных? Мне нужна возможность проверить предыдущую и следующую строки для источника, поскольку это является основой для некоторых значений столбца.

Ответы [ 2 ]

2 голосов
/ 03 октября 2011

Если вы говорите о простых манипуляциях, метод DataBinder.Eval принимает строку формата:

<%#Eval("SomeMoneyColumn", "{0:C}")%>

Если строки формата недостаточно, вы можете создать метод в коде дляобрабатывать форматирование следующим образом:

<%#FormatData(Eval("SomeColumn"))%>

В коде сзади:

protected string FormatData(object data)
{
    return String.Format("My name is {0}", data);
}

Вы также можете использовать событие ItemDataBound.Используя эту технику, вы все равно можете получить доступ к объекту источника данных, если ваши манипуляции связаны с другими данными, связанными с ретранслятором.

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    Label lblCtrl = e.Item.FindControl("SomeControl") as Label;
    if (lblCtrl != null)
    {
        lblCtrl.Text = String.Format("My name is {0}", DataBinder.Eval(e.Item.DataItem, "SomeColumn"));
    }
}
0 голосов
/ 03 октября 2011

Я не думаю, что есть способ сделать то, что вы хотите на стороне клиента, без использования специальной логики, как сейчас. Если вы получаете данные из базы данных, вы можете выполнить все манипуляции с данными на стороне БД и прозрачно передать их во внешний интерфейс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...