Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Что-то я после VB6 не могу понять как в VB.Net как обрабится к полям грида. Мне нужно, чтобы после изменений в полях сработал такой обаботчик: поле сумма=поле кол-во * поле цена ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:27 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
В вашем случае можно пойти по другому пути - используя доп поле DataTable yourTable.Columns.Add("Cost",GetType(Decimal), "Amount*Price"); А далее отобразить его в гриде, оно будет пересчитываться.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 14:52 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. Я изменила на свои наименования, но строка подчеркивается ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 15:03 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
MSDN - DataColumnCollection.Add Method пример Private Sub AddColumn() Dim cols As DataColumnCollection Dim myCol As DataColumn ' Get the DataColumnCollection of a table in a DataSet. cols = DataSet1.Tables("Orders").Columns ' КАК РАЗ СЛУЧАЙ С EXPRSSION myCol = cols.Add("Total", System.Type.GetType("System.Decimal"), _ "Price + Tax") myCol.ReadOnly = True myCol.Unique = False End Sub [\B] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 15:22 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
что-то мне не понятен этот вариант... а что без доп поля нельзя обойтись, а с имеющимся проделать обновление? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 15:46 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
у вас ,очевидно, существует какое то поле для отображения итогового поля сумма (допустим Cost). можно его и задействовать. Просто у данного поля соотв. образом заполнить св-во Expression. yourTable.Columns.("Cost").Expression="Amount*Price" другой вариант - более долгий и не совсем правильный, с помощью CurrencyManager узнать кол-во записей в гриде, бежать по записе в цикле и пересчитывать значение ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:18 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Ну а как обратиться : см DataGrid.Item Property например так gr(iRow, iCol) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:28 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
спасибо за помощь... я написала так: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:52 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
в совокупности все выглядит так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2004, 16:59 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
В продолжение у меня возник следующий вопрос: В гриде как уже говорилось есть поле Сумма, равное кол-во*цена. На форме же еще есть текстбокс, который отражает Sum(поле Сумма). Вопрос такой... После изменения кол-ва или цены мне нужно, чтоб пересчитывалось не только поле Сумма в гриде, но и тестбокс на форме. Как это лучше реализовать??? На VB6 я создала рекордсет, куда заносился рез-т sql запроса (select sum(position_stoim)) Потом значению поля из рекордсета основго присваивала полученное значению из только что созданного рекордсета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 12:47 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Написала так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. (TextBox1.Text = mysqlcmd.ExecuteScalar). Что неправильно? PS. Connection уже открыт на момент выполнения этого обработчика ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 13:19 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
TextBox1.Text = mysqlcmd.ExecuteScalar ExecuteScalar возвращает тип object. Вам надо воспользоваться CType для преобразования возвращаемого значения в строку, которая впоследствии может быть присвоена св-ву Text. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 13:58 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Спасибо, исправила, но пока сам обработчик не работает должным образом. Во-первых я подумала, что в запросе у меня не стоит условие, что подсчитывать по столбцу в гриде только для текущей записи из главной таблицы. Пэтому я изменила чуть запрос, но не уверена, что он правильный. Это было раз. Во-вторых как выглядит весть обработчик для полноты картины: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 14:50 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
малеенькая поправочка: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 14:59 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
mysqlcmd.Connection = SqlConnection1 mysqlcmd.CommandType = CommandType.Text mysqlcmd.CommandText = "sum(position_stoim*position_kurs_currency) from tpositions where document_id=?" TextBox1.Text = CType(mysqlcmd.ExecuteScalar, String) End Sub У вас используется запрос с параметром Очевидно конструкция все таки должна определять параметр: mysqlcmd.CommandText = "sum(position_stoim*position_kurs_currency) from tpositions where document_id=@id" mysqlcmd..Parameters.Add("@id", SqlDbType.Int, 5) mysqlcmd.Parameters(0).Value = !!!!!!!!!!некторое значение TextBox1.Text = CType(mysqlcmd.ExecuteScalar, String) [\B] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:00 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
mysqlcmd.Parameters.Add("@id", SqlDbType.Int, 5) Извиняюсь - промахнулся, Integer не имеет размерности правильнее так mysqlcmd.Parameters.Add("@id", SqlDbType.Int,0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:03 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Я написала так: Код: plaintext 1. 2. 3. 4. 5. 6. Но пока, при выполнени этого обработчика ничего не происходит и значение в тексбоксе остается прежним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:13 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Все таки правильнее написать так: mysqlcmd.Parameters.Add("@document_id", SqlDbType.Int, 0)[\B] Далее я бы проверил чему равняется Value или objDS_Documents.Tables("tpositions").Columns("document_id") Как я понимаю - у вас MS SQL - далее я бы выполнил запрос НА СЕРВЕРЕ с данным параметром . Если он выполнился корректно, то тогда надо искать проблему дальше И еще - document_id действительно интеджеровское поле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:25 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
1. mysqlcmd.Parameters.Add("@document_id", SqlDbType.Int, 0) Спасибо, исправила. 2. Я не совсем уверена, что она правильная. Пыталась посмотреть в вотче после присвоения и нигде не увидела чтоб значение стало равняться текущему значение document_id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:32 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Правильно ли я понимаю что вы хотите работать с помеченной строкой датагрида и оттуда брать значение document_id. Если так - то нужно работать с CurrencyManager - примерно так Dim cm As CurrencyManager = indingContext(dataGrid1.DataSource, dataGrid1.DataMember) Dim rv As DataRowView = CType(cm.Current, DataRowView) 'вот это текущая строка грида rv("documnet_id") - это и есть значение поля ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:48 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Вместо Dim cm As CurrencyManager = indingContext(dataGrid1.DataSource, dataGrid1.DataMember) Нужно Dim cm As CurrencyManager = BindingContext(dataGrid1.DataSource, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:50 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
ЧТО ТАКОЕ - ОПЯТЬ ОШИБСЯ!!! Вместо Dim cm As CurrencyManager = indingContext(dataGrid1.DataSource, dataGrid1.DataMember) Нужно Dim cm As CurrencyManager = BindingContext(dataGrid1.DataSource,dataGrid1.DataMember) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 15:51 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
в строке: Код: plaintext BindingContext(grdTPositions.DataSource, grdTPositions.DataMember) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:30 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
я просто использовал синатксис C# на котором работаю... надо приветсти к типу CurrencyManager Dim cm As CurrencyManager = CType(BindingContext(grdTPositions.DataSource, grdTPositions.DataMember),CurrencyManager) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2004, 16:39 |
|
||
|
как обратиться к значению полей грида
|
|||
|---|---|---|---|
|
#18+
Вот текст на данный момент: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Проблема того, что не происходит пересчет в текстбоксе до сих пор осталась. Посмотрела по вотчу и вот что увидела после строки mysqlcmd.Parameters(0).Value = rv("documnet_id") mysqlcmd.Parameters(0).Value имеет Nothing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2004, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=20&msg=32619284&tid=1438686]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
48ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 351ms |

| 0 / 0 |
