Страницы

Поиск по вопросам

среда, 18 марта 2020 г.

Как “выдернуть” значение из ячейки DataGridView?

#c_sharp #datagrid #winforms


Добрый день!Создал Форму1,добавил DataGridView и кинул событие для Формы1:
private void Form1_Load(object sender, EventArgs e)
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_VideoController");
        foreach (ManagementObject queryObj in searcher.Get())
        {
            dataGridView1.Rows.Add(queryObj["Caption"].ToString(), queryObj["PNPDeviceID"].ToString());
        }
    }

Далее для button'a в третьей колонки и кинул событие:
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        string url = "http://сайт.ru" + //тут значение из второй колонки// ;
        Process.Start(url);
        Close();
    }

В итоге вышла таблица,где выходит Имя и Значение ("Caption" и "PNPDeviceID"),а в
третьей колонке по нажатию на button идет переход на сайт.
Вопрос...как выдернуть значение "PNPDeviceID" из второй колонки и подставить в код
где написано "//тут значение из второй колонки//"...т.е. чтобы по нажатию на button
был переход на сайт с учетом значения во второй колонке "PNPDeviceID"?
Надеюсь понятно поставил вопрос.
Заранее спасибо.     


Ответы

Ответ 1



dataGridView1.Rows[e.RowIndex].Cells[1].Value

Ответ 2



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

Ответ 3



CompanyGridView["CompanyID", e.RowIndex].Value; теперь куда бы ты не перемещал столбец, всегда получишь его значение, CompanyID - имя столбца в CompanyGridView

Макет в несколько столбцов с содержимым разной высоты

#html #css #django


Здравствуйте!

Такая проблема:

Из базы данных приходит список новостей. Каждая новость — это картинка, заголовок
и поясняющий текст. Все новости помещаются в несколько колонок (от 1 до 3 в зависимости
от ширины окна). Все новости одинаковой ширины но разной длинны.

Нужно сверстать примерно такой макет:


При этом нужно сохранить порядок новостей.

И вот не могу придумать, как такое сделать... Очень хочется без js. Используется
django, шаблонизатор родной.

UPD: Если все-таки JS — к сайту прикручен JQuery.
    


Ответы

Ответ 1



А как насчет варианта с таблицами? Внешняя таблица имеет 3 столбца, а в эти столбцы добавляйте содержимое как хочется?

Ответ 2



На форуме htmlbook нашелся еще один вариант: .wrapper { line-height: 1em; columns: 200px auto; -moz-columns: 200px auto; -webkit-columns: 200px auto; break-after: column; } .wrapper div { width: 250px; display: inline-block; background: #303; margin: 10px 20px; vertical-align: top; } .small { height: 200px; } .medium { height: 300px; } .big { height: 350px; }
Пример на jsfiddle Прядок новостей, правда, не сохраняется, но использовать можно. Спасибо zlodeev.

Ответ 3



Почему бы не воспользоваться каким-нибудь css фреймворком? Например, foundation. Вот как это сделать при помощи этого фреймворка:
Блок 1
Блок 4
Блок 7
Блок 2
Блок 5
Блок 8
Блок 3
Блок 6


Подключение скриптов в ASP.NET MVC

#javascript #aspnet_mvc


Здравствуйте. У меня такой вопрос. В ASP.NET MVC 4 скрипты можно подключать через
файл BundlesConfig.cs и потом на view рендерить их на странице такой инструкцией: 

@Scripts.Render("~/bundles/mybundle")


Напрашивается вопрос - а чем это лучше традиционного 




Во всяком случае при обычном способе нужно изменять только один файл, а не два как
в первом способе

Заранее спасибо
    


Ответы

Ответ 1



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

Создание хорошего описания к коду

#yii #структуры #проектирование #проекты


Как возник данный вопрос, я, наверное, уже перейду к сути. Есть запрос на сервак,
у него 26 параметров. (мило правда?) запросов к серваку примерно может быть около 350!
в каждом от 5 до кучи передаваемых параметров.
Смысл в следующем, вот и вопрос.
У меня каждый запрос разбит на свой Action каждый action лежит в отдельном файле
//upd_start
Почему выбрано именно разбиение actions на файлы. Проект достаточно большой. Чтобы
все разработчики не расширяли сам контроллер, а просто дописывали в него 1-2 строчки
для подключения нового экшена + удобно редактировать проект такими кусками, а не целым
файлом, который бы терпел изменения постоянно. По мне так это правильно.
//upd_end
пример:
public function actions()
     {
     /* All actions in this controller 
      * are located in folder 
      * application.controllers.frontend.requests
      */
     return array(
                  'gf' => 'application.controllers.frontend.requests.gf',
                   // и т.д.
                );
      }

Первый вопрос:

На каком языке писать описание ко всему проекту?

В данный момент пытаюсь описывать на ENG, как может быть заметно из вышеописанной
функции, описание на ENG.
В gf.php описание тоже на ENG
@NumSeats          - The total number of passengers for which availability is being
requested
 @StartDt           - Date of Departure or Arrival. 
 @StartPt           - Airport or city code of the customer embarkation.
 @EndPt             - Airport or city code of the customer Destination.
 @StartTm           - Requested departure in 24-hour clock

В принципе, считаю что это правильно! В плане разработки проекта другими участниками,
как русско, так и англо говорящими.
Но есть одно но. Есть люди в компании не особо понимающие ENG язык и тем самым просят
комментировать код на русском языке.
В чем прикол? Ну на русском читать ведь проще! Соглашусь, переводить технический
ENG это пипец как "весело", схожу потихонечку с ума + ко всему не всегда получается
правильно перевести ENG на RUS в связи с разными обстоятельствами (незнание каких-то
оборотов и т.д.) В общем хватает веселых вещей по языкам.
Есть варианты решения, забить на ENG писать только на RUS второе решение писать только
на ENG, третье писать в 2х вариантах и в ENG/RUS что решит траблы обоих случаев, но
увеличит кол-во описания к коду, что на мой взгляд не есть хорошо.
Вот на стадии проектирования проекта и хочу выяснить как лучше делать.
С одной стороны хочется доставить всем удовольствие от разработки и писать описание
для всех, все равно приходится переводить мануал системы на RUS, с другой стороны писать
описалово на 2х языках муторно и как-то по кол-ву кода в файле слишком много.
Будет ли большое описание влиять на производительность кода?
последнее редактирование - 11.06.2013 15:32
Будут дополнения озвучу, пока все.
Жду ваших интересных отзывов по теме. 
Естественно буду продолжать открывать новые вопросы по теме разработки.    


Ответы

Ответ 1



@Shrek, не очень понял, что это за люди, которые хотят на русском. Если они будут сопровождать проект, то лучше делать комментарии на RUS. Если же это кто-то просто из любопытных заказчиков, то как Вам удобней (видимо, оставьте ENG). А писать комментарии в 2-х вариантах, это ни к чему. Тогда уж лучше их вообще не писать, т.к. через полгода один из вариантов точно уже не будет соответствовать коду.

Начать каждое предложение с заглавной буквы средствами css

#html #css


Хочу чтобы каждое предложение начиналось с заглавной буквы. Какими средствами css
пользоваться?
text-transform поднимает либо все, либо каждое слово.    


Ответы

Ответ 1



На чистом CSS такое сделать нельзя. Либо заворачивайте каждое предложение в отдельный div и используйте псевдокласс :first-letter, либо прикручивайте JavaScript.

Ответ 2



С помощью только css никак

Ответ 3



Пробуй: P:first-letter {text-transform: capitalize;}

Ответ 4



С помощью css можно изменить строку только в блочных объектах, заголовках и параграфах. Делаем первую букву Прописной, в строке в формате кодировки символов UTF-8, с помощью PHP: $title = mb_strtoupper(mb_substr($content, 0, 1, 'UTF-8'), 'UTF-8'). mb_substr($content, 1, null, 'UTF-8'); echo $title;

Проверка отправки формы

#php


Привет.Какая лучше проверка что форма отправлена?
Припустим у нас есть 
что я только не встречал:
1.Cамый популярный вариант  if (isset($_POST['submit'])
2.Тоже вариант  if (isset($_POST['submit']) && !empty($_POST['submit']))
3.Но мне больше всего пригляделся вариант:
 if ($_POST['photoList']=='submit'); Это ведь вариант включает по -умолчанию первые
2 проверки.Почему его так массово не используют?
C post вроде более менее понятно,а как же быть с GET -отправкой формы? Ведь любой
может прописать в адресной строке нужный параметр    


Ответы

Ответ 1



последний вариант не используют, так как в случае, если сабмита не было, будет предупреждение о несуществующем ключе массива. ИМХО, из простых самый лучший вариант: function form_submitted($form_name=false){ if(!isset($_POST['submitted'])){ // был ли вообще сабмит return false; //неа, завершаем } if($form_name && $_POST['submitted']!=$form_name){ //если проверяется конкретная форма, была ли отправлена именно она? return false;//нет, завершаем } return true;//все, ок. } Более сложный вариант - генерить уникальный хэш при каждой генерации формы, чтобы нельзя было отправить несколько раз, например, при обновлении Поставил ссыль на этот способ

Ответ 2



Да, это оптимальный вариант, используйте его Непонятно зачем второе условие, если в submit будет value = ''(пустая строка, здесь подробнее http://php.net/manual/ru/function.empty.php) то ваш код отметит форму как неотправленную, кроме той ошибки оно ничего не дает. Верно, любой может просто прописать в адресную строку все нужные данные и это будет эквивалентно отправке формы. Однако, есть хитрость, можно проверять рефер, с которого пришел пользователь, на то чтобы он был равен текущей странице.

Защита Connection String

#c_sharp #net #безопасность


Вопрос сложный, но хотелось бы услышать аргументированные ответы. 
Суть проблемы: Connection String - способ хранения, как обойтись без нее(если таково
возможно) и подключаться к базе данных (платформа .NET). Такие варианты, как app.config(web.config)
с шифрованием секции, реестр и сам исходный код - не предлагать. WCF и EntityFramework
тоже хранят ее в открытом виде. Как с этой строкой справляются в корпоративном ПО? 

P.S. База данных - на удаленном хосте mySql. Может стоит как-то получать эту строку
через сайт по защищенному каналу?
    


Ответы

Ответ 1



Я не уверен, что вам это нужно. Connection String, как правило, лежит в app.config/web.config. Конфиг не доступен по сети, локально права на его чтение можно ограничить.

Добавление записи в две связанные таблицы

#sql


Объясните пожалуйста, как добавить запись в SQL БД в две таблицы со связью "один-к-одному"?

Очевидный вариант - добавить INSERT'ом в одну таблицу, получить SELECT'ом primary
key, добавить INSERT'ом в другую. Но он выглядит, мягко говоря, не очень оптимально
- аж три запроса. А если добавятся ещё связанные таблицы?..
    


Ответы

Ответ 1



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

Ответ 2



Элегантное решение: INSERT INTO foo (auto,text) VALUES(NULL,'text'); # generate ID by inserting NULL INSERT INTO foo2 (id,text) VALUES(LAST_INSERT_ID(),'text'); # use ID in second table источник

Ответ 3



При создании записи можно получить последний автосгенерированный id. Например, в PHP для таких целей есть функция mysqli_insert_id().

Ответ 4



Как вариант для id использовать guid и получить уникальность априори, потеряв правда в скорости... (тут смайлик, скривившийся как от зубной боли). Но это так, в порядке полноты возможностей...

Ответ 5



На PostgreSQL можно: INSERT INTO table1 (field_name) VALUES (value) RETURNING id; При этом вместо id можно вернуть любой столбец. А потом гнать ещё один INSERT. Или INSERT INTO table1 (field_name) VALUES (value); INSERT INTO table2 (id) SELECT table1.id from table1 where field_name=value; На MariaDB,например, в PHP mysqli есть $mysqli->insert_id;

PyCharm, удалённый проект и окружение.

#python #pycharm #django #ssh #sftp


Всем доброе время суток.
Есть удалённый проект на Django. Я настраиваю PyCharm для работы с ним по SFTP. При
этом изменения в файлах отражаются на сервере (копируются при изменении).
Вопрос. Как мне читать окружение с сервера и запускать проект тоже на сервере?
Например, на сервере есть модуль, который не установлен на локальной машине. Как
мне сделать, чтобы для этого модуля было автодополнение кода и чтобы не ругался на
него? Можно ли сделать, чтобы PyCharm думал, что он на сервере, а не на моей машине.
Так как от SFTP мне на данный момент пользы как кот наплакал (только копирование кода
автоматическое).
Спасибо.    


Ответы

Ответ 1



Для этого существуют Remote Interpreters: http://blog.jetbrains.com/pycharm/2013/03/how-pycharm-helps-you-with-remote-development/ http://www.jetbrains.com/pycharm/quickstart/configuring_interpreter.html#remote_ssh