karan joshua Ответов: 6

привязка текстового поля в gridview


Я использую C#,asp.net 2.0,server 2005 и visual studio 2005

Кто-нибудь может помочь со следующей проблемой:

изначально я загружаю gridview (содержит 1 текстовое поле) с использованием некоторых значений...


in aspx
<asp:TextBox Text='<%#Eval("col1") %>'/>

in C#:
 
Con.Open();
             SqlDataAdapter dt = new SqlDataAdapter("select col1 from Table1", Con);
             DataSet ds = new DataSet();
             dt.Fill(ds);
             GridView1.DataSource = ds;
             GridView1.DataBind();


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

<pre>


in C#:

Con.Open();
             SqlDataAdapter dt = new SqlDataAdapter("select col2 from Table1", Con);
             DataSet ds = new DataSet();
             dt.Fill(ds);
             GridView1.DataSource = ds;
             GridView1.DataBind();


</pre>


что я должен написать общего в
Text='<% %>'
, так что gridview привязан к указанным значениям функции





пожалуйста, помогите мне.
заранее спасибо.
С уважением,
Каран

6 Ответов

Рейтинг:
47

RaviRanjanKr

Посмотри там-КП Вопрос-Ответ[^] на тот же вопрос отвечают хорошими решениями.
Вы должны написать как

<asp:textbox id="YourControlID" runat="Server" xmlns:asp="#unknown">
          Text='<%# Bind("ColumnName") %>'  /></asp:textbox>


karan joshua

спасибо Вам за вашу ссылку...
Если я использую скажем в <предварительно>текст=в'<%# Персонализация("col1 выполняется") %&ГТ; в'</пре&ГТ;

в следующий раз время будет на <предварительно>текст=в'<%# Персонализация("столбец col2") %&ГТ; в'</пре> В aspx-страницы. но я не могу изменить его на это, когда приложение запускается.

Есть решение?

thatraja

В точку, 5!

Рейтинг:
41

nit_singh

У меня есть два стола

dt.Columns.Add("Col1");
dt.Rows.Add("Col11");
dt1.Columns.Add("Col2");
dt1.Rows.Add("Col12");

Я связываю GridView1 в первый раз с dt и во второй раз с dt1, которые имеют другое имя столбца.
И я проверяю свойство DataSource
public void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        TextBox txt = (TextBox)e.Row.FindControl("txtCol");
        if (GridView1.DataSource == dt)
        {
            txt.Text = DataBinder.Eval(e.Row.DataItem, "Col1").ToString();
        }
        else if (GridView1.DataSource == dt1)
        {
            txt.Text = DataBinder.Eval(e.Row.DataItem, "Col2").ToString();
        }
    }
}


karan joshua

Спасибо.. Это очень помогло мне ... большое вам спасибо....
я решил свою проблему, используя это...
Мой 5.

Еще раз спасибо тебе..

Рейтинг:
36

Shahriar Iqbal Chowdhury/Galib

Привет,
Вы можете использовать общее имя псевдонима столбца для sql-запросов и использовать это имя псевдонима столбца для привязки данных. Например попробуйте этот код ниже,
в *.aspx-файл

<asp:TextBox Text='<%#Eval("mycolumn") %>'/>

в *.aspx-файл.в CS
///For 1st DataBind
SqlDataAdapter dt = new SqlDataAdapter("select col1 as mycolumn from Table1", Con);
///For 2nd DataBind
SqlDataAdapter dt = new SqlDataAdapter("select col2 as mycolumn from Table1", Con);

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

Надеюсь, это поможет.


karan joshua

О, хорошее решение.. поблагодарить у очень многое...Выглядит очень просто...

Большое спасибо...Мой 5..

Еще раз благодарю вас...

Рейтинг:
1

chaosgray

используйте databind в edittemplate вашего gridview.

сначала щелкните смарт-тег, а затем измените шаблон.
затем нажмите на смарт-тег textbox и выберите databind.


Рейтинг:
1

Phanindra Baddula

<%#(строка.IsNullOrEmpty(Eval("col1").Метод toString()) ? Функция eval("столбец col2") : функция eval("столбца col1"))%&ГТ;


Рейтинг:
0

nit_singh

Используйте событие ItemDataBound DataGrid, а там проверьте источник данных и динамически свяжите текстовое поле.


karan joshua

как это сделать?
какая-нибудь помощь с кодом?
Моя проблема заключается в том, что если я использую <pre>Text='<%#Eval("col1") %>'</pre> Во второй раз это будет col2.