Member 12677894 Ответов: 1

Как искать записи в сетке с определенной датой в ASP.NET


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

пожалуйста, ответьте мне, спасибо

Что я уже пробовал:

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

Vincent Maverick Durano

Позвольте мне уточнить. Вы показываете все записи в сетке сразу?

Member 12677894

нет, я установил paging=15

Vincent Maverick Durano

Хорошо. Если это так, то вам нужно написать запрос для выполнения запроса данных на основе вашего фильтра.

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Если вы используете ADO.NET с помощью DataTable для привязки вашего GridView вы можете сделать что-то вроде этого:

protected void BindGrid(string searchText){
    using(SqlConnection connection = new SqlConnection("YOUR CONNECTION STRING HERE")){
        using(SqlCommand cmd = new SqlCommand(sql,connection)){
                string sql = "SELECT * FROM TableName WHERE YourFieldName = @Param1";
                cmd.Parameters.AddWithValue("@Param1", searchText);
                DataTable dt = new DataTable();
                SqlDataAdapter ad = new SqlDataAdapter(cmd);
                ad.Fill(dt);

                if (dt.Rows.Count > 0) { //check if the query returns any data
                       GridView1.DataSource = dt;
                       GridView1.DataBind();
                }
                else
                {
                     //No records found
                }
        }

    }
}

protected void Button1_Click(object sender, EventArgs e){
        BindGrid(YourTextBoxID.Text.Trim());
}


Приведенный выше код является типичным способом поиска конкретной записи в базе данных на основе значения текстового поля. Возможно,Вам потребуется проверить текст, чтобы убедиться в правильности формата дат. Вы также можете использовать элемент управления MaskEdit или Calendar extender для текстового поля, чтобы убедиться, что введенные даты действительны. В зависимости от вашего типа данных вам также может потребоваться выполнить преобразование типа данных из string в datetime.

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


Member 12677894

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

Vincent Maverick Durano

Для этого вам нужно будет использовать манипуляции DOM. Вы можете попробовать использовать JavaScript/jQuery для его реализации, но он будет искать только текущую подкачанную сетку. Вы не можете ожидать, что будете выполнять манипуляции DOM на стороне клиента для поиска скрытых страниц сетки. Если вам нужен пример, выполните поиск в google, используя этот термин: "Search GridView using JavaScript" удачи!

Member 12677894

пользователь: Индия
сервер: США
в базе данных есть две даты приема
1)24/06/2016 14:30:00
2)25/06/2016 00:00:00

во время отображения я переведу их в индийское эквивалентное время, добавив к ним 9 часов 30 минут, возьму короткую часть и отобразлю в сетке
таким образом, при отображении в сетке 24/06/2016 14: 30:00 преобразовано в 25/06/2016 00: 00: 00 и 25/06/2016 00: 00 преобразовано в 25/06/2016 9: 30: 00, и если мы возьмем короткую дату, то часть из них будет 25/06/2016, и обе записи будут воспроизведены как 25/06/2016

теперь, когда пользователь хочет отфильтровать запись по дате приема, он вводит 25/06/2016, когда мы отправляем входные данные в запрос, только одна запись совпадает и извлекает запись,

если мы преобразуем введенную пользователем дату 25/06/2016 в время США, то это будет 24/06/2016 14: 30:00, и она будет совпадать с 24/06/2016 14: 30: 00, а не совпадать с 25/06/2016 00: 00: 00,
таким образом, пользователь не может получить записи должным образом, так как же мне решить эту проблему??