Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
1

Gridview привязка binding

01.05.2011, 21:26. Просмотров 2469. Ответов 21
Метки нет (Все метки)

Подскажите мне пжлст что я сделал не так?

1) создал некоторый класс Car с 2мя полями там марка и номер, пометил этот класс, как
[System.ComponentModel.Dataobject] Инкапсулировал все поля и сделал для них конструктор.

2)Создал Грид

3)Нажал Chose Data Sourse->New Source->Object->Webaplication1.Car Т.е выбрал мой класс как business object

4) Нажал Next

5) Теперь от меня требуется выбрать какой-то метод но я не понимаю какой??? Когда я делал просто в формах, этого не требовалось, а тут первый раз столкнулся. Помогите пожалуйста что делать дальше и испрвьте ошибки, если я их сделал(

Буду очень благодарен.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2011, 21:26
Ответы с готовыми решениями:

Как разворачивать поле у GridView (вложенный gridview)
Мне нужно выводить в GridView часть данных одной таблице, а оставшуюся часть данных прятать в полях...

Значение из одной ячейки gridView на одной странице добавить в gridView на другой
Нужно значение из одной ячейки gridView на одной странице добавить в gridView на другой.. (через...

Привязка данных и обновление в GridView
Всем привет. Сразу к делу. Вторую неделю изучаю дот нэт. Вывожу данные гридом. В гриде прикрутил...

Не получается привязка (Binding)
Пишу twitter клиент пользуясь паттерном MVVM. Вся механика вытаскивания твиттов с твиттера...

Data binding / привязка данных
Добрый день. Я правильно понимаю, что если хочу привязать график сhart1 к некоторому массиву точек...

21
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
01.05.2011, 22:55 2
Deceember, нет нет нет тут все не так
Кроме класса Car вам надо создать репозиторий данного класса который будет возвращать коллекцию (например IList<Car>) как результат одного из методов.
0
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
02.05.2011, 09:54  [ТС] 3
А можете показать как это сделать(?

Я просто слово репозиторий первый раз в жизни слышу, а научиться очень хочется

И еще тогда вопрос. Я например добаляю объект в эту коллекцию какой-то i+1 и хочу, чтобы при добавлении автоматически обновлялся grid. Т.е размер коллекции будет меняться и как я в этом случае писать метод который возвращает коллекцию? Или вообще есть другие способыц это реализовать?

Простите нуба
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
02.05.2011, 11:47 4
Deceember, как то так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Car
    {
        public string Mark { get; set; }
        public string Number { get; set; }
    }
 
    [System.ComponentModel.DataObject]
    class CarRepository
    {
        public CarRepository()
        {
            carsList = new List<Car>();
 
            carsList.Add(new Car { Mark = "BMW", Number = "1111" });
            carsList.Add(new Car { Mark = "Mersedes", Number = "777" });
        }
 
        private IList<Car> carsList;
 
        [System.ComponentModel.DataObjectMethod( System.ComponentModel.DataObjectMethodType.Select)]
        public IList<Car> GetCarsList()
        {
            return carsList.ToList().AsReadOnly();
        }
    }
1
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
02.05.2011, 15:08  [ТС] 5
Понял, спасибо огромное))

Но все же еще 1 вопрос остался. У меня коллекция обновляющаяся, Т.е с сервера постоянно подгружается информация и добавляются новые объекты, А можно как-нибудь сделать это для такого случая, потому что как понял, способом что вы показали, можно сделать только фиксированную коллекцию, или я не прав?

Т.е в идеале. Я беру добавляю объект в коллекцию и потом автоматически обновляется грид.
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
02.05.2011, 17:50 6
Цитата Сообщение от Deceember Посмотреть сообщение
У меня коллекция обновляющаяся, Т.е с сервера постоянно подгружается информация и добавляются новые объекты, А можно как-нибудь сделать это для такого случая, потому что как понял, способом что вы показали, можно сделать только фиксированную коллекцию, или я не прав?
Если информация хранится в БД - смотрите в сторону ORM (LinqToSQL, Entity Framework).
0
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
02.05.2011, 18:48  [ТС] 7
Я наверное корво написал
Попробую почетче

1) У меня каждые 5 минут из интернета приходит строка
2) Я разбиваю эту строку на 2 слова и хочу занести это в грид в 1 столбец - 1 слово во второй столбец-второе, при этом грдид должен обновиться- т.е в него должна добавиться новая строка

Как я понял, в том коде, который вы показали, коллекция обязательно должна быть сФормирована, и только по сформированной коллекции можно создать grid

А сделать так чтобы грид обновлялся при постиуплении новых данных я не знаю как(
0
mustf4
33 / 33 / 3
Регистрация: 13.10.2009
Сообщений: 119
02.05.2011, 21:06 8
Цитата Сообщение от Deceember Посмотреть сообщение
А сделать так чтобы грид обновлялся при постиуплении новых данных я не знаю как(
Перезагрузить страницу с новой коллекцией (уже заполненной с учетом полученных данных)
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
02.05.2011, 22:09 9
Deceember,

C#
1
2
3
4
public void AddCar(string mark, string number)
{
carsList.Add(new Car{ Mark=mark, Number=number});
}
Добавлено через 38 секунд
ну и gridView1.DataBind() - на странице
0
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
03.05.2011, 20:24  [ТС] 10
SiteMaster
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace WebApplication1
{
   
    public partial class SiteMaster : System.Web.UI.MasterPage
    {
        ManRepository ob = new ManRepository();
        protected void Page_Load(object sender, EventArgs e)
        {
            /*GridView1.DataSource = sp;
            GridView1.DataBind();*/
        }
 
        protected void Button1_Click(object sender, EventArgs e)
        {
            ob.AddCar("Иван", "Иванов");
            GridView1.DataBind();
        }
    }
}
Класс Репозитоий
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
namespace WebApplication1
{
    [System.ComponentModel.DataObject]
    
    public class ManRepository
    {
        private IList<Man> manList;
 
       public ManRepository()
       {
           manList = new List<Man>();
 
       }
       public void AddCar(string Name, string Surname)
       {
           manList.Add(new Man(Name,Surname));
       } 
 
       [System.ComponentModel.DataObjectMethod(System.ComponentModel.DataObjectMethodType.Select)]
       public IList<Man> GetMansList()
       {
           return manList.ToList().AsReadOnly();
       }
 
    }
}
При нажатии на кнопку все равно ничего не обнавляется, хотя должна добавиться новая строка(
0
Alligieri
CEO
Эксперт С++
2254 / 1244 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
04.05.2011, 01:45 11
Deceember, код разметки страницы забросьте если можно
0
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
04.05.2011, 09:56  [ТС] 12
Этоо такой позор((((

Я новичек и я правда не знаю что сделать чтобы этот код разметки найти( Что-то есть но по моему это не то(((

Куда нажать надо чтобы он появился?

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?xml version="1.0"?>
 
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
 
<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>
 
  <system.web>
    <compilation debug="true" targetFramework="4.0" />
 
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login.aspx" timeout="2880" />
    </authentication>
 
    <membership>
      <providers>
        <clear/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
             enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
             maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
             applicationName="/" />
      </providers>
    </membership>
 
    <profile>
      <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/"/>
      </providers>
    </profile>
 
    <roleManager enabled="false">
      <providers>
        <clear/>
        <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" />
        <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" />
      </providers>
    </roleManager>
 
  </system.web>
 
  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>
Это явно не то((((((
0
Johnny_D
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,842
04.05.2011, 10:49 13
Deceember, это файл web.config -не совсем то. Заархивируй проект и выложи сюда, так будет быстрей.
0
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
04.05.2011, 11:30  [ТС] 14
Вот(
Оно не обнавляет грид(
Я не знаю почему

Блин(
Мне так стыдно

Но спросить больше не у кого. спасибо, что не бросаете(
0
Вложения
Тип файла: rar Wa1.rar (166.1 Кб, 16 просмотров)
Johnny_D
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,842
04.05.2011, 14:56 15
Deceember, ничего стыдного. Все так начинаем.
Ну во первых нужно почитать про мастер страницы и про content placeholder. Не рекомендуется на мастер страницу пихать гриды и прочие элементы.
Не совсем понял зачем создаются репозитории данном случае, ведь можно объекты напрямую подавать в грид.
Т.е. примерно так
1
Вложения
Тип файла: rar WebApplication1.rar (166.2 Кб, 17 просмотров)
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
04.05.2011, 19:40  [ТС] 16
Неа((

у меня почти тоже самое делало, но это не правильно( В этом и фишка(

Мне надо чтобы при нажатии на кнопку таблица обновлялась, т.е нажал Добавилась строчка
Иван Иванов
еще раз нажал
еще раз она добавилась.
И после 5ти наджатий было бы 5 строчек Иван Иванов а в начале не было бы совсем(

Вот(( Это и не получается

Добавлено через 2 часа 40 минут
=(((((((
0
Johnny_D
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,842
04.05.2011, 20:44 17
Deceember, ок, сейчас поправим )
0
Johnny_D
Padawan
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,842
04.05.2011, 20:56 18
Ну вот такой вариант, с использованием сессии
1
Вложения
Тип файла: rar WebApplication1.rar (159.5 Кб, 20 просмотров)
Deceember
0 / 0 / 1
Регистрация: 17.09.2010
Сообщений: 55
05.05.2011, 10:05  [ТС] 19
Оно работет) Спасибо)

Но я все равно не понял что такое сессия?? Можете чуть чуть рассказать. Просто я раньше не сталкивался никогда с чем-то похожим(
0
mustf4
33 / 33 / 3
Регистрация: 13.10.2009
Сообщений: 119
05.05.2011, 10:35 20
Deceember, Session state — это набор пользовательских переменных, которые продолжают существовать в течение сеанса пользователя. Эти переменные уникальны для различных экземпляров пользовательских сессий, и доступны через коллекцию Session. Эти переменные (Session variables) можно настроить таким образом, чтобы они автоматически уничтожались по прошествии определённого времени неактивности пользователя, даже, если сессия ещё не завершена. На клиентской стороне пользовательская сессия идентифицируется при помощи cookie или при помощи ID сессии в её URL.

ASP.NET поддерживает следующие режимы существования переменных сессии:
InProc
Переменные сессии поддерживаются внутри процесса ASP.NET. Однако, в этом режиме переменные уничтожаются, когда процесс ASP.NET запускается повторно, либо завершается.
StateServer
В этом режиме ASP.NET запускает отдельную службу (service), которая поддерживает переменные состояния. Так как управление состоянием (state management) происходит за пределами ASP.NET процесса, это негативно сказывается на производительности, но позволяет многим экземплярам ASP.NET использовать общий сервер состояний, таким образом позволяя приложению ASP.NET быть равномерно распределённым на различных серверах (с балансировкой нагрузки и масштабированием на несколько серверов). Так как служба управления состоянием (state management service) запускается независимо от ASP.NET, переменные могут существовать после завершения работы процесса ASP.NET.
SQLServer
В этом режиме, переменные состояния (state variables) хранятся на database server, и доступны через SQL. Переменные состояния могут существовать после завершения процесса ASP.NET так же как и в предыдущем случае.
Off
Управление состоянием сеансов отключено.
Custom
Этот режим требует указать свой поставщик хранилища данных о сессиях с помощью атрибута customProvider.

Чаще всего используется тогда, когда информацию о сеансах необходимо хранить в базе данных, отличной от SqlServer (например, MySql или Oracle).
Пример использования сессий
C#
1
2
3
4
    Session["Name"] = "Иван Логинов"; //Session["Name"] = (object);
    Session.Add("Age", 16);
    //Забираем значение.
    Response.Write((string)Session["Name"] + ":" + ((ushort)(Session["Age"])).ToString() + "-years old.");
Результат, выводимый на экран:
Иван Логинов:16-years old.

Источник: Wikipedia
0
05.05.2011, 10:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2011, 10:35

Привязка события к кнопке (Binding)
Приветствую. Есть код: &lt;Button Content=&quot;Click&quot; Click=&quot;Binding Path=Funct&quot;/&gt; private void...

Привязка данных через Binding в XAML
Дорогие форумчане. Помогите с таким вопросом. Работаю с WPF на Visual Basic. Каким образом можно...

Создание простого Binding'a (привязка класса к ListBox)
При освоении технологии binding столкнулся с проблемой. Есть ListBox и есть, скажем класс Person....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru