ZohaibRazaTheDProgrammer Ответов: 1

Как проверить выпадающий список и обновить базу данных одним щелчком мыши внутри элемента управления gridview в ASP .NET?


I have one GridView inside an update panel. Last column of the GridView has a LinkButton (<pre lang="HTML">ID="lnkUpdate"
). Эта кнопка LinkButton используется для проверки нескольких выпадающих списков в других Столбцах GridView с помощью функции JavaScript (Validate(lnkUpdate)). Я хочу обновить данные в базе данных с помощью этой кнопки LinkButton. Я могу успешно обновить данные в базе данных, если использую OnClick= "btnSave_Data_Click", однако мне нужно удалить OnClientClick= " return Validate (this)".

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

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


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

Код для проверки (lnkUpdate) :

<script type="text/javascript">
    function Validate(lnkUpdate) {
        var txtIncident, ddlStatus, ddlReason;
        var row = lnkUpdate.parentNode.parentNode;
        var controls = row.getElementsByTagName("*");
        for (var i = 0; i < controls.length; i++) {
            if (controls[i].id.indexOf("txtIncident") != -1) {
                txtIncident = controls[i];
            }
            if (controls[i].id.indexOf("ddlStatus") != -1) {
                ddlStatus = controls[i];
            }
            if (controls[i].id.indexOf("ddlReason") != -1) {
                ddlReason = controls[i];
            }

        }
        var message = "";
        if (ddlStatus.value == "") {
            message += "Please select Status";
        } else if ((ddlStatus.value == "Make") && (ddlReason.value == "")) {
            message += "Please select Reason";
        } else if ((ddlStatus.value == "Miss") && (ddlReason.value == "")) {
            message += "Please select Reason";
        } else if (
            ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Availablility: Customer") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Availablility: Dell Other") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Availablility: Dell Reporting Team") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Availablility: Vendor") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Integrity: Customer") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Integrity: Dell Other") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Integrity: Dell Reporting Team") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Data Integrity: Vendor") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Duplicate Instance") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "External Factors") && (txtIncident.value == ""))
            || ((ddlStatus.value == "Miss") && (ddlReason.value == "Report Modifications: Customer") && (txtIncident.value == ""))
            ) {
            message += "Please enter Incident#";
        } else {


        }
        //Display error message.
        if (message != "") {
            alert(message);
            return false;
        }
        return true;
    }

</script>



а код для btnSave_Data_Click таков:

Защищенный суб btnSave_Data_Click (отправитель как объект, e Как EventArgs) обрабатывает btnSave_Data.Щелчок
Дим УМК как sqlcommand объект = новый sqlcommand, который
УМК.CommandType = CommandType.Хранимая процедура
УМК.Свойства commandtext = "sp_Insrt_Updt_Rcrd"
УМК.Параметры.AddWithValue ("@Report_Date", Сегодня())
УМК.Параметры.AddWithValue ("@Name", "")
УМК.Параметры.AddWithValue ("@Report_Time", "")
УМК.Параметры.AddWithValue ("@Type", "")
УМК.Параметры.AddWithValue ("@Усилие", "")
УМК.Параметры.AddWithValue ("@Account", "")
УМК.Параметры.AddWithValue ("@Method", "")
УМК.Параметры.AddWithValue ("@Format", "")
УМК.Параметры.AddWithValue ("@Status", "")
УМК.Параметры.AddWithValue ("@Reason", "")
УМК.Параметры.AddWithValue ("@Инцидент", "")
УМК.Параметры.AddWithValue ("@Action", "")
УМК.Параметры.AddWithValue ("@Обозначение", "")
УМК.Параметры.AddWithValue ("@Location", "")
УМК.Параметры.AddWithValue ("@Support_Region", "")
УМК.Параметры.AddWithValue ("@Badge", "")
УМК.Параметры.AddWithValue ("@DateTime_IST_India", "")
УМК.Параметры.AddWithValue ("@DateTime_CST_Round_Rock", "")
УМК.Параметры.AddWithValue ("@DateTime_MST_Cyberjaya", "")
УМК.Параметры.AddWithValue ("@DateTime_GMT_Casablanca", "")
УМК.Параметры.AddWithValue ("@Week_Working_Day_Number", "")
УМК.Параметры.AddWithValue ("@Month_Working_Day_Number", "")
УМК.Параметры.AddWithValue ("@NT_Login", "")
УМК.Параметры.AddWithValue ("@Report_UID", Today() & " Finally_03")

Dim dt As DataTable = новый DataTable
Dim con As SqlConnection = New SqlConnection(strConnString)
Dim sda As SqlDataAdapter = новый SqlDataAdapter
УМК.Подключение = кон
против.Открыть()
АСД.Команды selectcommand = ЦМД
ПДД.Заполнить(ДТ)
Конец Подводной Лодки

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Вы уверены, что событие на стороне клиента возвращает true?

Vincent Maverick Durano

Ваше серверное событие "btnSave_Data_Click" должно быть запущено, как только ваша проверка JavaScript вернет true.

Karthik_Mahalingam

Всегда использовать  Ответить  кнопка, чтобы отправить комментарии / запрос пользователю, чтобы пользователь получил уведомление и ответил на ваш текст.

ZohaibRazaTheDProgrammer

@Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ) когда я нажимаю кнопку lnkupdate, я вижу ошибки проверки, когда в выпадающем списке выбираются неправильные значения.

ZohaibRazaTheDProgrammer

@Vincent Maverick Durano lnkUpdate находится внутри gridview, это не независимый серверный элемент управления.

Vincent Maverick Durano

Вы хотите сказать,что lnkUpdate и btnSave были разными?

ZohaibRazaTheDProgrammer

да, они разные btnSave_Data_Click (отправитель как объект, e Как EventArgs) вызывается для выполнения задачи

Vincent Maverick Durano

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

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Я думал, что btnSave_Data_Click вызывается при нажатии кнопки LinkButton. В любом случае, почему ты не можешь этого сделать? Таким образом, после того как вы закончите проверку и она вернет true, щелчок сервера будет запущен автоматически.

ZohaibRazaTheDProgrammer

не могли бы вы помочь мне объединить эти два блока кода? они работают независимо друг от друга, но я не могу написать функцию/код, который будет выполнять ту же задачу в одном блоке кода.

Vincent Maverick Durano

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

1 Ответов

Рейтинг:
0

Vincent Maverick Durano

Если я правильно вас понял, вы хотели выполнить обновление и в то же время выполнить проверку в LinkButton событие. Если да, то приложите Onclick событие для вашего LinkButton (lnkUpdate) как:

OnClick="lnkUpdate_Click"

Затем сделайте что-то подобное в своем коде позади:

Protected Sub lnkUpdate_Click(sender As Object, e As EventArgs)
	Dim lb As LinkButton = DirectCast(sender, LinkButton)
	Dim row As GridViewRow = DirectCast(lb.NamingContainer, GridViewRow)
	If row IsNot Nothing Then
                'gets the row index selected
		Dim index As Integer = row.RowIndex
		
		'access the controls here
        Dim ddlStatus As DropDownList = DirectCast(row.FindControl("DropDownListID"), DropDownList)
		'your update code here
		
	End If
End Sub

'=======================================================
'Service provided by Telerik (www.telerik.com)
'Conversion powered by NRefactory.
'Twitter: @telerik
'Facebook: facebook.com/telerik
'=======================================================


ZohaibRazaTheDProgrammer

еще немного помощи будет оценено. Пожалуйста, объясните код.

Vincent Maverick Durano

Код уже очень прямолинеен. Какую часть этого вы не поняли?

ZohaibRazaTheDProgrammer

Я использовал:
&ЛТ;система.веб.услуги.webmethod ()> _
Public Shared Function updtRcrds(ByVal name As String) As String
... код для вставки записей
Возвращение "Привет" &амп; имя & окружающей среды.Перевод строки &ампер; "текущее время:" &амп; _
Датавремя.Сейчас.Метод toString()
Конечная Функция

и вызвал updtRcrds() из JavaScript с помощью:

PageMethods.GetDetails("MY_NAME", OnSuccess);

функция OnSuccess(response, userContext, methodName) {
предупреждение(ответ);
}

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

Любая помощь будет очень признательна.