У меня есть данные, которые отображаются в 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 { }
}
Есть идеи, что вызывает это отключение?