【问题标题】:Import checked status from a function从函数导入检查状态
【发布时间】:2014-08-22 03:04:27
【问题描述】:

我正在尝试使这段代码工作:

<asp:CheckBox ID="statusChk" runat="server" Visible="true" Enabled="false" Checked='<%# status("de_cancel") %>'></asp:CheckBox>

我要做的是从我在 c# 源代码中创建的 status 函数(当我给出字符串时返回 bool)中检索答案。 不会给我编译错误,但不起作用。 编辑:顺便说一句,这是在 GridView 里面

这行得通:

<asp:Label ID="lblInfo" runat="server" Visible="true" Text='<%# Bind("de_cancel") %>'></asp:Label>

但这不是我想要的不是

对不起,我的英语不好。

【问题讨论】:

    标签: c# asp.net .net checkbox


    【解决方案1】:

    我假设这是在网格视图中,或者在其他一些转发器中。

    在这种情况下,试试这个:

    <asp:Label ID="lblInfo" runat="server" Visible="true" Text='<%# status(Eval("de_cancel")) %>'></asp:Label>
    

    这实际上是调用您的status() 方法并传入de_cancel 的值

    您可能必须在status 方法中使用convert de_cancel,尽管Eval 返回一个对象。

    【讨论】:

    • 抱歉没有提及,是的,这是在 GridView 中。你的代码没有做我想要的,甚至更正:&lt;asp:CheckBox ID="statusChk" runat="server" Visible="true" Enabled="false" Checked='&lt;%#Eval(status("de_cancel"))%&gt;'&gt;&lt;/asp:CheckBox&gt;&lt;asp:CheckBox ID="statusChk" runat="server" Visible="true" Enabled="false" Checked='&lt;%#status(Eval("de_cancel"))%&gt;'&gt;&lt;/asp:CheckBox&gt; 都给我一个错误。
    • 只为后人,最终答案:&lt;asp:CheckBox ID="statusChk" runat="server" Visible="true" Enabled="false" Checked='&lt;%#status(Convert.ToString(Eval("de_cancel")))%&gt;'&gt;&lt;/asp:CheckBox&gt;
    【解决方案2】:

    只需在代码隐藏中执行此操作:

        protected void Page_Load(object sender, EventArgs e)
        {
            //Get your string variable and use it as input here
            statusChk.Checked = status("de_cancel"); 
        }
    
        protected bool status(string strStatus)
        {
            if (strStatus == "de_cancel")
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    

    这将在页面加载时发生。您可能还想使用其他事件处理程序 - 请参阅 http://msdn.microsoft.com/en-us/library/6w2tb12s(v=vs.90).aspx

    下面是一个示例,说明如何使用事件处理程序 (OnSelectedIndexChanged) 在更改下拉值时设置复选框。正如接受的答案指出的那样,如果您希望在更改控件时触发事件处理程序方法(并刷新页面),则需要在控件上设置 AutoPostBack="true" 选项:

    Getting a dropdownlist to check a checkbox in asp.net/C#

    此外,仅查看您的代码,您可能正在使用数据绑定,例如使用 RepeaterListView。在这种情况下,请参考以下 ItemDataBound 事件处理程序的示例:

    http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.itemdatabound(v=vs.110).aspx

    http://www.codeguru.com/csharp/.net/net_asp/tutorials/article.php/c12065/ASPNET-Tip-Use-the-ItemDataBound-Event-of-a-Repeater.htm

    【讨论】:

    • 抱歉没有提及,是的,这是在 GridView 中。因此 Page_Load 中不存在 statusChk。我阅读并尝试重现您的 2 个最后链接所做的事情,但无法做到,也许我太笨了。 (我会继续努力):/
    • 没关系 - 我可能过于复杂了。如果您想让我看一下,请发布您的代码。
    • 我已经得到了答案,但非常感谢您的关注。 :)
    【解决方案3】:

    感谢 Darren 的提示,我能够做到。这是我为使其工作所做的工作:

    <asp:CheckBox ID="statusChk" runat="server" Visible="true" Enabled="false" Checked='<%#status(Convert.ToString(Eval("de_cancel")))%>'></asp:CheckBox>
    

    谢谢大家。 ;)

    【讨论】:

    • 你知道,我在回答中确实说过你需要转换你的de_cancel......基本上这和我的回答完全一样。
    • 不完全是,但是是的,您的提示对于答案至关重要。我试图给你一个“点”,表明你的答案很有用,但我不能,因为我的帐户是新的。相反,我给了你接受答案的所有者。
    猜你喜欢
    • 2019-10-15
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多