代码之家  ›  专栏  ›  技术社区  ›  marc

gridView/objectDatasource inside runat=服务器容器未绑定

  •  1
  • marc  · 技术社区  · 16 年前

    我有一个带有两个单选按钮的小Web窗体,称它们为pickfromlist和entervalue。选中pickfromlist后,我希望显示一个已配置为绑定到ObjectDatasource的GridView。选中EnterValue后,我希望GridView消失。

    此表单使用表进行布局,并希望根据适当的数据和用户输入隐藏/显示适当的行。

    不幸的是,当trpickfromlist2行指定id和runat=“server”属性时,GridView没有绑定。如果我从trpickfromlist2行中删除id和runat=“server”,它将成功绑定。

    有什么想法吗?

    <table id="tblOptions" runat="server">
        <tr id="trPickFromList1" runat="server">
            <td>
                <asp:RadioButton ID="rbFromList" runat="server" GroupName="Selection" 
                    Text="Get Data From Existing Item" AutoPostBack="True" 
                    oncheckedchanged="rbromList_CheckedChanged" />
            </td>
        </tr>
        <tr id="trPickFromList2" runat="server">
            <td style="padding-left:20px">
                <asp:GridView ID="gvList" runat="server" AutoGenerateColumns="False" 
                    DataSourceID="odsList" Width="400px" onrowdatabound="gvList_RowDataBound">
                    <Columns>
                        ...
                    </Columns>
                </asp:GridView>
            </td>
        </tr>
        <tr id="trEnterValue1" runat="server">
            <td>
                <asp:RadioButton ID="rbEnterValue" runat="server" GroupName="Selection" 
                                Text="Create a New Item"
                                AutoPostBack="True" 
                                oncheckedchanged="rbEntered_CheckedChanged" />
            ...
    
    6 回复  |  直到 16 年前
        1
  •  1
  •   Andrew Bullock    16 年前

    为什么不用javascript显示/隐藏TRS?这样,您就不会遇到这个问题,而且您将拥有一个响应速度更快的UI。

    使用jQuery:

    $('.classonShowRadioButton')。单击(function()。{ $('.TrToShow').Show(); $('.trtohide').hide(); (});

    然后明显地对另一个单选按钮执行相反的操作。

        2
  •  2
  •   marc    16 年前

    我最终实现了 Wilco Bauwer's RowSelectorField control 解决这个问题。这不是一个完美的解决方案,因为控件将显示选定行的索引值,而不是选定的数据键值;但是,它运行得很好。

        3
  •  0
  •   the-undefined    16 年前

    隐马尔可夫模型。。不太确定,但有几次让我觉得AutowireEvents设置为false,它位于<%page/%>部分的顶部。不好意思,如果没有帮助的话,但是一些烦人和无足轻重的事情是问题的根源。

        4
  •  0
  •   wulimaster    16 年前

    如果autowireEvents的答案joe建议不是问题,您也可以尝试从tr标记中删除runat=server,然后用占位符包装它们,并使用占位符控制可见性。(注意,不要使用面板,因为这样会导致无效的HTML)

        5
  •  0
  •   devio    16 年前

    noticed the same behavior 在带有runat=“server”的tr标记中包含formView

        6
  •  0
  •   ChrisN    16 年前

    您使用表格进行布局有什么特别的原因吗?尝试将所有控件从表中取出,并使单选按钮使实际的网格视图可见/不可见。

    推荐文章