Как проверить флажок внутри повторителя в момент привязки в соответствии со значением? - PullRequest
1 голос
/ 09 декабря 2011

У меня есть повторитель, и внутри него есть флажок. Теперь я хочу проверить его по значению столбцов (0/1). Я пробовал это через событие itemDataBound повторителя. что он делает, если строки имеют значение 1, тогда флажок флажок «все», а если флажок «первый» снят, то флажок «все флажки» мой код: - `

                    <td align="center">
                        <asp:CheckBox ID="chk" runat="server" />
                    </td>
                </tr>
            </ItemTemplate>
        </asp:Repeater>`

Код события ItemDataBound: -

 protected void rp_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    DataTable dt = new DataTable();
    dt = obj.abc(id);
    if (dt.Rows.Count > 0)
    {
        CheckBox chk = (CheckBox)(e.Item.FindControl("chk"));
        if (chk != null)
        {

            if (Convert.ToInt32(dt.Rows[0]["xyz"]) == Convert.ToInt32("0"))
            {
                chk.Checked = false;
            }
            else
            {
                chk.Checked = true;

            }
        }

    }

}

1 Ответ

3 голосов
/ 09 декабря 2011

Есть много способов сделать это.

  1. Вы можете написать встроенный ASP.NET:

    <asp:CheckBox id='isMarried' runat='server' 
    Checked='<%# Convert.ToBool(Eval("IsMarried")) ? true : false %>' />
    
  2. Как вы упомянули, вы можете использовать repeater_ItemDataBound, чтобы найти флажок для каждой строки и соответственно установить его значение:

    protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Person person = (Person)e.Item; // e.Item is the datasoruce of the row
        if (person.IsMarried) 
        {
            CheckBox isMarried = (CheckBox)(e.Item.FindControl("isMarried"));
            isMarried.Checked = true;
        }
    }
    
  3. Другим способом может быть внедрение логического состояния (здесь, состояния брака) в скрытое поле и его отправка клиенту, затем на стороне клиента, с использованием jQuery (или любой другой инфраструктуры JavaScript), обновление проверенное состояние флажков в соответствии со значением этих скрытых полей:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...