【问题标题】:If SQLDatasource returns 0 rows, change display:none to display:block如果 SQLDatasource 返回 0 行,请将 display:none 更改为 display:block
【发布时间】:2016-02-29 10:54:51
【问题描述】:

我有一张表格,上面写着

找到0个订单

这是当前在css中设置的

#OrderNoExist {
    display:none;
}

我希望 C# 更改此表的 css 样式以阻止。这是我目前拥有的,我想知道这有什么问题?它逐步执行整个方法,但没有发生变化? OrderNoExist 是一个 ID。

    protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
    {
        if (e.AffectedRows < 1)
        {

            OrderNoExist.Attributes.CssStyle[HtmlTextWriterStyle.Display] = "block";
            OrderNoExist.Style["display"] = "block";

        }
    }

标记:

<table class="dxeTextBoxSys dxeTextBox_DevEx" id="OrderNoExist" style="color:Red;">
  <tbody><tr>
    <td class="dxic" style="width:100%;"><input class="dxeEditArea_DevEx dxeEditAreaSys" id="OrderNoExist_I" name="ctl00$ctl00$ASPxSplitter1$Content$ContentSplitter$MainContent$OrderNoExist" onfocus="aspxEGotFocus('OrderNoExist')" onblur="aspxELostFocus('OrderNoExist')" value="Order doesn't exist." type="text" style="color:Red;">
    </td>
</tr></tbody></table>

处理前的设计(如果有帮助的话):

<dx:ASPxTextBox runat="server" Theme="Metropolis" ClientIDMode="Static" ID="OrderNoExist" Text="Order doesn't exist." Width="107px" ForeColor="red"></dx:ASPxTextBox>

【问题讨论】:

  • 这个“0 个订单”标签在标记中的外观如何?
  • 这只是表格中的文本。普通的“0个订单”
  • 当然,但是它在标记中的实现方式可能是这对您不起作用的原因。您可以将其添加到问题中吗?
  • 嗨,我刚刚添加了标记
  • 您的标记中是否有多个 OrderNoExist 控件?

标签: c# asp.net sqldatasource


【解决方案1】:

尝试使用OrderNoExist.Style.Add("display", "block");

【讨论】:

  • @sojim2 制作一个外部 div 元素并与他一起操作可能会更好。尝试这样做
  • 我试过了,但是 ID 在 devexpress 控制下是动态的。
  • 然后在后面的代码中:myDiv.Style.Add("display", "block");
  • 所以我发现了一些有趣的事情发生了。当我在 page_load 上应用样式时,它工作正常;但是,当我将代码放入SqlDataSource1_Selected 时,尽管它可以正确执行,但由于某种原因,更改并未出现在页面上。另外,我尝试了 myDiv runat 方法,它将 ID 扩展到相当大的东西:ctl00_ctl00_ASPxSplitter1_Content_ContentSplitter_MainContent_myDiv
【解决方案2】:

问题在于其他控件在回调面板之外。该按钮位于回调面板内,因此这就是按钮属性更改的原因。

我只是使用回调面板中的一个控件来显示错误,它工作正常。

【讨论】:

  • 如果您使用回调面板,那么您正在执行部分回发... ;)
  • 你能告诉我这意味着什么吗?我正在开发的这个应用程序只显示用户信息,不需要用户输入。
  • 服务器看到部分回发与完整/正常回发几乎相同。最大的区别在于浏览器。部分回发由 Ajax 触发(因此您需要 javascript),它只会刷新回调面板内的内容——回调面板外的所有内容都将保持不变。例如,您可以利用它来保留 javascript 变量值。 (在面板之外,它们将在部分回发后保留其价值,但在完整回发后不会。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-14
  • 2021-09-30
  • 1970-01-01
  • 2019-08-26
  • 2012-06-15
相关资源
最近更新 更多