asp.net Gridview проверяет выбранный индекс на стороне клиента

как я могу сделать это на стороне клиента, OnClientClick из btnYes вернет false, если для gridview выбран индекс ‹0;

protected void btnYes_Click(object sender, EventArgs e)
{
    if (gvCourseDetails.SelectedIndex == -1)
    {
        ClientScriptManager scriptManager = Page.ClientScript;
        scriptManager.RegisterClientScriptBlock(this.GetType(), "alertmessage",
                       "<script>alert('Select a course above first');</script>");
    }
}

Спасибо.


person Agamand The True    schedule 27.12.2009    source источник


Ответы (2)


В любом случае выбранный индекс GridView не изменится без обратной передачи, поэтому вы можете оценить его только один раз на стороне сервера (на странице page_load или btnYes prerender и т. Д.). На стороне клиента это почти бессмысленно.

if (gvCourseDetails.SelectedIndex == -1)
{
   btnYes.OnClientClick = "alert('Select a course above first'); return false;";
}
else
{
   btnYes.OnClientClick = "";
}
person Kobi    schedule 27.12.2009

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

public int selectedIndex = 0;
protected void Page_Load(object sender, EventArgs e)
{
selectedIndex = gvCourseDetails.SelectedIndex;
}

// а здесь клиентский скрипт

function CheckSelectedIndex()
{
   if(<%= selectedIndex%> == -1)
   {
       // type you code
   }
}
person Hiyasat    schedule 27.12.2009