RydenChoi Ответов: 1

Как открыть всплывающее окно, когда флажок установлен в gridview?


Привет, я делаю доску с помощью GridView.

А теперь я хочу сделать вот так :

1. Если установлен флажок в GridView и нажать кнопку Изменить, открыть всплывающие окна

2. Еще одно предупреждающее сообщение "пожалуйста, проверьте свой товар"

Я нажал кнопку под кодом, когда я ничего не выбираю, появилось предупреждающее сообщение,

и я поставил галочку и нажал кнопку, также появилось предупреждающее сообщение.

окно.

Но вместо javascript, если я использую код
Response.Redirect("UserBoard_Edit.aspx?BoardItemID=" + boardItemID);

это хорошо работает.

Я не знаю, почему он не выстрелил...

Можно ли сделать одну функцию javascript?

Пожалуйста, помогите мне.....

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

--- Это страница. aspx ---
<asp:LinkButton ID="lnbEdit" runat="server" Text="Edit" OnClick="lnbEdit_Click">

<asp:GridView ID="grvList" DataKeyNames="BoardItemID" runat="server" AutoGenerateColumns="False" >
    <columns>
        <asp:BoundField HeaderText ="boardItemID" DataField="BoardItemID" HeaderStyle-CssClass="hidden">
             <itemstyle cssclass="hidden" />
        
        <asp:BoundField HeaderText="conNo" Visible="false" DataField="indexNo" />
        <asp:TemplateField>
             <itemtemplate>
                 <asp:CheckBox ID="chk" runat="server"/>
             </itemtemplate>
         ...
...
        
        </columns>

--- Это код за страницей ---
protected void lnbEdit_Click(object sender, EventArgs e)
  {
      foreach (GridViewRow gRow in grvList.Rows)
      {
          CheckBox chk = (CheckBox)gRow.FindControl("chk");
          if (chk.Checked)
          {
              int boardItemID = Convert.ToInt32(gRow.Cells[0].Text);
              string popURL = "UserBoard_Edit.aspx?BoardItemID=" + boardItemID;
              string openPopUp = @"
              <script type='text/javascript'>
                  popup = window.open('" + popURL + "', 'open_window', 'width = 880, height = 500, left = 0, top = 0'); popup.focus();</script>";
              this.ClientScript.RegisterClientScriptBlock(this.GetType(), "script", openPopUp);
              //Response.Redirect("UserBoard_Edit.aspx?BoardItemID=" + boardItemID);
          }
          else
          {
              string message = @"
              <script type='text/javascript'>
                  alert('Please check your Item');
              </script>";
              this.ClientScript.RegisterClientScriptBlock(this.GetType(), "script", message);
          }
      }
  }

1 Ответов

Рейтинг:
1

Vincent Maverick Durano

Цитата:
и я поставил галочку и нажал кнопку, также появилось предупреждающее сообщение.


Кажется, что ваш флажок Checked свойство всегда возвращает false. Вы пробовали отлаживать свой код?

Чтобы гарантировать, что состояние флажка не будет сброшено при каждой обратной передаче, вы должны привязать свой GridView внутри блока Not IsPostback в Page_Load событие:

protected void Page_Load(object sender, EventArgs e){
        if (!IsPostBack)
        {
            //Bind Your GridView Here
        }
}


RydenChoi

Спасибо за ваш комментарий, Винсент, но я уже сделал это.
Я думаю, что измените javascript на один код и исправьте код c#...