Использование строки для переключения видимых состояний в шаблоне элемента - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть данные, которые отображаются в gridview. Если я вытаскиваю его из одной таблицы, я хочу, чтобы он читался / записывался, а из другой просто читал. У меня есть SqlDataSource, который может выплевывать некоторый текст в зависимости от источника, и да, текст, который он выплевывает, точен. Поэтому я поместил метку и текстовое поле в шаблон элемента в gridview, и для обоих свойств видимого свойства установлено значение public bool.

Проблема в том, что это не всегда совпадает. Иногда данные одного свойства переключаются на другую форму (т. Е. Данные только для чтения отображаются в виде текстового поля), но это происходит не каждый раз, поэтому это не простая проблема «испортил мое утверждение if». Состояние отображения часто будет противоположным отображаемому тексту.

<asp:TemplateField HeaderText="Next Price" SortExpression="newdata">
    <ItemTemplate>
        <asp:TextBox ID="ReadWrite" runat="server" 
            Text='<%# Bind("newdata", "{0:N2}") %>' Width="60px"
            class="calculate" onchange="calculate()"
            Visible='<%# ShowBox %>'></asp:TextBox>
        <asp:Label ID="ReadOnly" runat="server" Text='<%# Bind("newdata", "{0:N2}") %>'
            Visible='<%# ShowLabel %>'></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

Код, стоящий за этим:

protected void MasterDisplay_DataBound(object sender, EventArgs e)
{
    DataSourceSelectArguments sr = new DataSourceSelectArguments();
    DataView dv = (DataView)CheckForCommit.Select(sr);
    if (dv.Count != 0)
        CommittedOrNot.Text = dv[0][0].ToString();
    //for displaying where data is pulled from
}

public bool ShowBox
{
    get
    {
        return (CommittedOrNot.Text == "This has not yet been committed.");
    }
    private set { }
}

public bool ShowLabel
{
    get { return (CommittedOrNot.Text != "This has not yet been committed."); }
    private set { } 
}

Есть идеи, что вызывает это отключение?

1 Ответ

0 голосов
/ 01 декабря 2011

Оказывается, мне просто нужно было добавить UpdateRows и DataBind в Commit_Click

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