Vikas Hire Ответов: 1

Как написать код C# на ASP.NET веб-форма?


Здравствуйте, я Викас новенький asp.net веб-разработка,
Я не могу реализовать свою логику в Asp.Net веб-форма... можете ли вы помочь?.

Итак, у меня есть веб-форма, которую я собираюсь привязать к форме с помощью ретранслятора. но я хочу проверить значение, прежде чем репетер свяжет это значение с контролем..

См. ниже код

<%
 if (Convert.ToString(Eval("InterestStatus")) == "Pendding")
         {
               
         }
   %><asp:LinkButton ID="lbtnAccept" CommandName="AcceptInterest" runat="server">ACCEPT</asp:LinkButton>&nbsp &nbsp
                            <asp:LinkButton ID="lbtnReject" CommandName="RejectInterest" runat="server">REJECT</asp:LinkButton>


В приведенном выше коде я хочу проверить
if (Convert.ToString(Eval("InterestStatus")) == "Pendding")

тогда я хочу, чтобы видимые ниже кнопки ссылок были еще не видны.

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

Я пытаюсь принять запрос на отклонение от одного пользователя к другому.
если запрос будет принят, то он будет виден там принятым..

если у вас есть какие-либо вопросы к пониманию моей проблемы, пожалуйста, спросите...

Спасибо

1 Ответов

Рейтинг:
7

F-ES Sitecore

Вам нужно войти в правильное мышление для разработки веб-форм. Вместо того чтобы добавлять логику на страницу aspx, вы просто добавляете элементы управления и используете код для управления этими элементами управления. Поэтому я бы добавил оба элемента управления LinkButton, но установил их видимость в false;

<asp:Repeater ID="MyRepeater" runat="server">
    <ItemTemplate>
        <asp:LinkButton ID="lbtnAccept" CommandName="AcceptInterest" Visible="false" runat="server">ACCEPT</asp:LinkButton>&nbsp &nbsp
        <asp:LinkButton ID="lbtnReject" CommandName="RejectInterest" Visible="false" runat="server">REJECT</asp:LinkButton>
    </ItemTemplate>
</asp:Repeater>


Затем используйте событие ItemDataBound на странице code-behind, чтобы решить, когда будут показаны элементы управления

protected void Page_Load(object sender, EventArgs e)
{
    List<MyData> data = new List<MyData> { new MyData { InterestStatus = "ABC" }, new MyData { InterestStatus="Pending" } };

    MyRepeater.DataSource = data;
    MyRepeater.ItemDataBound += MyRepeater_ItemDataBound;
    MyRepeater.DataBind();
}

protected void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
        MyData rowData = (MyData)e.Item.DataItem;

        if (rowData.InterestStatus == "Pending")
        {
            LinkButton lbtnAccept = (LinkButton)e.Item.FindControl("lbtnAccept");
            LinkButton lbtnReject = (LinkButton)e.Item.FindControl("lbtnReject");

            lbtnAccept.Visible = true;
            lbtnReject.Visible = true;
        }
    }
}


Вы также можете использовать это событие для заполнения элементов управления, если их данные нуждаются в какой-либо логике для установки.

Если вы используете DataTable, то код будет выглядеть следующим образом

protected void Page_Load(object sender, EventArgs e)
{
    DataTable data = new DataTable();
    data.Columns.Add("ID", typeof(int));
    data.Columns.Add("Name", typeof(string));
    data.Columns.Add("InterestStatus", typeof(string));

    data.Rows.Add(1, "Joe", "Approved");
    data.Rows.Add(2, "Dave", "Pending");

    MyRepeater.DataSource = data;
    MyRepeater.ItemDataBound += MyRepeater_ItemDataBound;
    MyRepeater.DataBind();
}

protected void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    // The ItemDataBound event is called once for each "template" in the repeater
    // So it is called when binding the header, the footer and the items
    // We're only interesting when it is binding the items so we use this if
    // to make sure our code only runs when it is something in the ItemTemplate that
    // is being bound.  Rather than there being a single type for item there are two,
    // Item and AlternatingItem, this is incase what what to do something different
    // for alternative items, ie even and odd rows, such as have different background
    // colours etc.
    if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
    {
        // The item of data being bound to the item is in e.Item.DataItem so we have
        // to cast it to its proper type in order to use it.  If you are binding to a DataTable
        // then this is DataRowView and it represents the data in that individual row
        DataRowView rowData = (DataRowView)e.Item.DataItem;

        // We access the fields of rowData by putting the fieldname in square brackets
        // again we need to cast to the proper type
        if ((string)rowData["InterestStatus"] == "Pending")
        {
            LinkButton lbtnAccept = (LinkButton)e.Item.FindControl("lbtnAccept");
            LinkButton lbtnReject = (LinkButton)e.Item.FindControl("lbtnReject");

            lbtnAccept.Visible = true;
            lbtnReject.Visible = true;
        }
    }
}


Vikas Hire

Я привязал таблицу данных к своему ретранслятору,
как я могу проверить значение ретранслятора.. используя условие if

Я немного растерялся..


если (электронная.Товар.ItemType = = ListItemType.AlternatingItem | / e.Item.ItemType = = ListItemType.Предмет)
{
MyData rowData = (MyData)e.Item.Элемента данных;

F-ES Sitecore

Я обновил решение, включив код для привязки к DataTable вместе с некоторыми дополнительными комментариями, чтобы охватить эти строки кода.

Vikas Hire

Спасибо... Все Получилось..
Большое спасибо...за то, что уделили мне свое драгоценное время..

Vikas Hire

Спасибо... Ф-Эс компания