KyLim0211 Ответов: 2

АСП GridView можно не получить значение флажка


<asp:GridView ID="GrdRole" runat="server" CssClass="table table-striped table-bordered table-hover" EmptyDataText="No Records Found" DataKeyNames="RoleID"
             AllowPaging="true" AutoGenerateColumns="false" AutoGenerateDeleteButton="false" RowStyle-HorizontalAlign="Left" OnPageIndexChanging="GrdRole_PageIndexChanging"
             HeaderStyle-HorizontalAlign="Center" GridLines="None" PageSize="10" RowStyle-CssClass="gradeX" AlternatingRowStyle-CssClass="gradeA">
             <Columns>
                 <asp:TemplateField HeaderText="Select" ItemStyle-Width="10px">
                     <ItemTemplate>
                         <input type="checkbox" runat="server" id="emp" value='<%#Eval("EmployeeNo")%>' />
                     </ItemTemplate>
                 </asp:TemplateField>
                 <asp:TemplateField HeaderText="User Name" ItemStyle-Width="90%">
                     <ItemTemplate>
                         <label><%#DataBinder.Eval(Container.DataItem, "Name")%></label>
                     </ItemTemplate>
                 </asp:TemplateField>
             </Columns>
             <PagerStyle HorizontalAlign="Right" CssClass="pagination-ys" />
         </asp:GridView>


protected void click(object sender, EventArgs e)
{
    string data = "";
    foreach (GridViewRow row in GrdRole.Rows)
    {
        if (row.RowType == DataControlRowType.DataRow)
        {
            CheckBox chkRow = (row.Cells[0].FindControl("emp") as CheckBox);
            if (chkRow.Checked)
            {
                string storid = row.Cells[1].Text;
                data = data + storid + "<br>";
            }
        }
    }
    lblmsg.Text = data;
}

почему lblmsg.текст пуст?я же поставьте галочку

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

есть идеи, почему он не может получить мое значение флажка?пожалуйста, помогите, спасибо.

2 Ответов

Рейтинг:
1

Karthik_Mahalingam

попробовать это



protected void Button1_Click(object sender, EventArgs e)
      {
          string data = "";
          foreach (GridViewRow row in GrdRole.Rows)
          {
              if (row.RowType == DataControlRowType.DataRow)
              {

                 CheckBox chkRow = (row.FindControl("emp") as CheckBox);
                  if (chkRow.Checked)
                  {
                      string storid = (row.FindControl("lbl") as Label).Text;
                      data = data + storid + "<br>";
                  }
              }
          }
          lblmsg.Text = data;
      }


<columns>
                <asp:templatefield headertext="Select" itemstyle-width="10px"  >
                    <itemtemplate>
                        <asp:checkbox id="emp" runat="server" text="<%#Eval("EmployeeNo")%>" />
                    </itemtemplate>
                </asp:templatefield>
                <asp:templatefield headertext="User Name" itemstyle-width="90%"  >
                    <itemtemplate>
                        <asp:label id="lbl" runat="server" text="<%#Eval("Name")%>"></asp:label>
                    </itemtemplate>
                </asp:templatefield>
            </columns>


KyLim0211

извините, что я использую ваш код, но ошибка : тег сервера не очень хорошо сформирован.
&ЛТ;АСП:чекбокс с ID="Эми" атрибут runat="сервер" текст="&ЛТ;%#Ивала("EmployeeNo")%&ГТ;" /&ГТ;

Karthik_Mahalingam

&ЛТ;АСП:чекбокс с ID="Эми" атрибут runat="сервер" текст=в'<%#Ивала("EmployeeNo")%&ГТ;' /&ГТ;

KyLim0211

извините, что ваш метод тоже не работает,он не может получить вход

Karthik_Mahalingam

опубликуйте свой код.

Karthik_Mahalingam

это то, что я пробовал..

код aspx в Edit fiddle - JSFiddle[^]






protected void Page_Load(отправитель объекта, EventArgs e)
{
если (стр.IsPostBack) возврат;
DataTable dt = новый DataTable();
ДТ.Столбцы.Добавить ("EmployeeNo");
ДТ.Столбцы.Добавить ("Имя");
ДТ.Столбцы.Добавить ("RoleID");
ДТ.Строк.Добавить("Мото", "Нексус",1);
ДТ.Строк.Добавить("Яблоко", "Айфон",2);
ДТ.Строк.Добавить("Сони", "Вайо",3);
dt. Rows. Add ("Samsung", "Edge", 4);
Грдрол.Источник данных = dt;
Грдрол.Привязку();


}

охраняемых недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
строковые данные = "";
foreach (строка GridViewRow в GrdRole.Строки)
{
если (строки.RowType == DataControlRowType.Строкаданных)
{

Флажок chkRow = (строки.FindControl("Эми"), как флажок);
если (chkRow.Проверен)
{
string storid = (row.FindControl("lbl") as Label).Текст;
data = data + storid + "< br>";
}
}
}
lblmsg.Текстовые данные;
}

KyLim0211

выход пуст, когда я нажимаю кнопку

Karthik_Mahalingam

использовать это
&ЛТ;АСП:метка идентификатор="ЛБЛ" атрибут runat="сервер" текст=в'<%#Ивала("название")%&ГТ; в'>

Рейтинг:
0

KyLim0211

  <asp:gridview id="GrdRole" runat="server" cssclass="table table-striped table-bordered table-hover" emptydatatext="No Records Found" datakeynames="RoleID" xmlns:asp="#unknown">
                AllowPaging="true" AutoGenerateColumns="false" AutoGenerateDeleteButton="false" RowStyle-HorizontalAlign="Left" OnPageIndexChanging="GrdRole_PageIndexChanging"
                HeaderStyle-HorizontalAlign="Center" GridLines="None" PageSize="10" RowStyle-CssClass="gradeX" AlternatingRowStyle-CssClass="gradeA">
                <columns>
                    <asp:templatefield headertext="Select" itemstyle-width="10px">
                        <itemtemplate>
                            <input type="checkbox" runat="server" id="emp" value='<%#Eval("EmployeeNo")%>' />
                        </itemtemplate>
                    </asp:templatefield>
                    <asp:templatefield headertext="User Name" itemstyle-width="90%">
                        <itemtemplate>
                            <label><%#DataBinder.Eval(Container.DataItem, "Name")%></label>
                        </itemtemplate>
                    </asp:templatefield>
                </columns>
                <pagerstyle horizontalalign="Right" cssclass="pagination-ys" />
            </asp:gridview>
<td>
            <asp:button id="submit_button" text="Update" cssclass="btn btn-success" runat="server" onclick="UpdateBtm" xmlns:asp="#unknown" />
        </td>


мой с#
protected void UpdateBtm(object sender, EventArgs e)
   {
       foreach (GridViewRow row in GrdRole.Rows)
       {
           if (row.RowType == DataControlRowType.DataRow)
           {
               CheckBox chkRow = (row.Cells[0].FindControl("emp") as CheckBox);
               if (chkRow.Checked)
               {
                   string storid = row.Cells[0].Text;
                   ClientScript.RegisterStartupScript(GetType(), "alert", "alert('" + storid + "');", true);
               }
           }
       }

   }


Karthik_Mahalingam

не используйте виджет решения для публикации комментариев
удалите его.