Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как обратиться к столбцу DataSource (вопрос новичка) / 4 сообщений из 4, страница 1 из 1
28.10.2014, 10:11
    #38788953
Новичок 111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к столбцу DataSource (вопрос новичка)
На форме есть DropDownList, который привязан к SQLDataSource. Для значения используется ID, для отображения какое-нибудь Name.
Всё хорошо пока.
Но вот вопрос. Этот SQLDataSource содержит ещё одно поле, значение которого нужно отобразить при выборе соответствующего значения в списке в Label (или в TextBox и т.д.).
Как это делается в ASP.NET ?
Или, если нельзя такое сделать при помощи привязки, как сделать программно, скажем, в обработчике какого-нибудь события списка?
...
Рейтинг: 0 / 0
28.10.2014, 18:47
    #38789784
VIT2708_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к столбцу DataSource (вопрос новичка)
Новичок 111,

сделать то можна но немного надо потрудится

если надо могу привести пример как я такую же точно проблему решил, но уже завтра (конец рабочего дня)
...
Рейтинг: 0 / 0
28.10.2014, 21:34
    #38789870
Новичок 111
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к столбцу DataSource (вопрос новичка)
VIT2708_,
Если не сложно, приведите примерчик.
Я понимаю, что можно конечно сделать в качестве источника данных новый запрос, а в условие ему написать ID выбранной записи, и выполнить его. Но это как-то выглядит очень избыточно, ведь нужное поле уже получено из БД, и уже выбрана нужная запись в списке. Надо только как-то добраться до него...
...
Рейтинг: 0 / 0
29.10.2014, 10:00
    #38790255
VIT2708_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как обратиться к столбцу DataSource (вопрос новичка)
Новичок 111,

Итак

Код: c#
1.
2.
3.
4.
5.
class DataSrc  // класс источник DropDown (List<DataSrc>)
{
int Id {get; set;}
string Name {get; set;}
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
[Serializable]
class DataAttribute // здесь ты хранишь доп свойство или свойства
{
DataAttribute(int id, object attrib)
{
this.Id = id;
this.Attrib = attrib;
}

int Id {get; set;}
object Attrib {get; set;} // или другой тип
}



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
[Serializable]
class DataAttributeCollection : List<DataAttribute>
{
public object this[int id]
{
get
{
foreach (DataAttribute at in this)
                {
                    if (at.id == id)
                        return at.Attrib;
                }
}
return null;
}
}



ASPX

Код: plaintext
1.
2.
3.
4.
<asp:DropDownList ID="ddlTest" runat="server" DataValueField="id" 
                DataTextField="name" AutoPostBack="True" 
                onselectedindexchanged="ddlTest_SelectedIndexChanged">
            </asp:DropDownList>



CS ASPX

Код: c#
1.
2.
3.
4.
5.
private DataAttributeCollection Atribs // Хранение данных доп. атрибутов
    {
        get { return (DataAttributeCollection)ViewState["atc"]; }
        set { ViewState["atc"] = value; }
    }



Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
private List<DataSrc> Source  // Источник ddlTest
{
set
{
ddlTest.DataSource = value;
ddlTest.DataBind();

if (Atribs == null)
                Atribs = new DataAttributeCollection();
            else
                Atribs.Clear();
 
foreach(DataSrc ds in value)
{
Atribs.Add(new DataAttribute(ds.Id.ToString(), ds.Attrib.ToString());
}
}
}



Page_Load

Код: c#
1.
Source = // заполняешь данными ;



Обработчик ddlTest_SelectedIndexChanged

Код: c#
1.
2.
3.
4.
protected void ddlTest_SelectedIndexChanged(object sender, EventArgs e)
{
TextBox.Text = DataAttribute[int.Parse(ddlTest.SelectedValue)];
}
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как обратиться к столбцу DataSource (вопрос новичка) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]