1

我有一个带有 2 个单选按钮的小型 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" />
        ...
4

6 回答 6

2

我最终实现了Wilco Bauwer 的 RowSelectorField 控件来解决这个问题。这不是一个完美的解决方案,因为控件显示所选行的索引值而不是所选数据键值;但是,效果很好。

于 2008-11-04T13:10:05.697 回答
1

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

使用 jQuery:

$('.classOnShowRadioButton').click(function(){ $('.trToShow').show(); $('.trToHide').hide(); });

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

于 2008-10-30T18:44:19.257 回答
0

嗯..不太确定,但让我有好几次的事情是将 AutoWireEvents 设置为 false,它位于 <% page /%> 部分的顶部。抱歉,如果没有帮助,但是像这样烦人且微不足道的事情很可能是问题所在。

于 2008-10-30T18:07:08.273 回答
0

如果乔建议的 AutoWireEvents 回答不是问题,您还可以尝试从 tr 标签中删除 runat=server,而是用占位符包装它们并使用占位符来控制可见性。(注意,不要使用面板,因为它会导致无效的 html)

于 2008-10-30T18:39:13.467 回答
0

注意到带有 runat="server" 的 TR 标记内的 FormView 有相同的行为

于 2008-10-30T19:17:14.963 回答
0

您使用表格进行布局的任何特殊原因?尝试从表格中取出所有控件,并使单选按钮使实际的 GridView 可见/不可见。

于 2008-10-30T20:02:21.550 回答