我在页面上有一个GridView和DetailsView - 都是数据绑定。
我想选择数据绑定行并打开内部填充了DetailsView的模式。
我在一个TemplateField中的LinkButtons用于我的选择按钮,带有示例bootstrap模态数据切换和数据目标字段。
我的问题是在模态中显示DetailsView - 单击GridView中的SELECT按钮 - 模式显示,但无论我选择哪一行,数据都保持不变。
详情查看代码
<asp:DetailsView ID="DetailsView1" runat="server" DataSourceID="DetailsViewComputer" Height="50px" Width="125px">
</asp:DetailsView>
<asp:SqlDataSource ID="DetailsViewComputer" runat="server" ConnectionString="<%$ ConnectionStrings:ITManagementConnectionString %>" ProviderName="<%$ ConnectionStrings:ITManagementConnectionString.ProviderName %>" SelectCommand="SELECT idComputers, idStatus, Hostname, idUser, AssetNumber, IPAddress, MACAddress, idoffice, idManufacturer, idModel, idProcessor, idRAM, idRAMType, idGraphicsCard, idHDD, SerialNumber, DateCreated, DateLastModified FROM computers WHERE (idComputers = @Param1)">
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="Param1" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
GridView代码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="idComputers" DataSourceID="GridViewComputer">
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Select" data-toggle="modal" data-target="#myModal" Text="Select"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="idComputers" HeaderText="idComputers" InsertVisible="False" ReadOnly="True" SortExpression="idComputers" />
<asp:BoundField DataField="Status" HeaderText="Status" SortExpression="Status" />
<asp:BoundField DataField="Hostname" HeaderText="Hostname" SortExpression="Hostname" />
<asp:BoundField DataField="forename" HeaderText="forename" SortExpression="forename" />
<asp:BoundField DataField="surname" HeaderText="surname" SortExpression="surname" />
<asp:BoundField DataField="officename" HeaderText="officename" SortExpression="officename" />
<asp:BoundField DataField="IPAddress" HeaderText="IPAddress" SortExpression="IPAddress" />
<asp:BoundField DataField="ManufacturerName" HeaderText="ManufacturerName" SortExpression="ManufacturerName" />
<asp:BoundField DataField="Model" HeaderText="Model" SortExpression="Model" />
<asp:BoundField DataField="HDDSize" HeaderText="HDDSize" SortExpression="HDDSize" />
<asp:BoundField DataField="RAMSize" HeaderText="RAMSize" SortExpression="RAMSize" />
</Columns>
</asp:GridView>
通过消除过程,我认为这个问题与我的LinkButton有关 - 特别是数据切换 - 见下文:
LinkButton1
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Select" data-toggle="modal" data-target="#myModal" Text="Select"></asp:LinkButton>
每当我从Modal中删除data-toggle元素和DetailsView代码时 - select工作,DetailsView显示数据。每当包含data-toggle元素且DetailsView代码在Modal中时 - 模态显示没有,但DetailsView数据不会改变。
我错过了什么吗?
我已经在下面的页面中搜索并尝试了解决方案,但要么我是白痴,要么它不起作用(很可能是前者):
我将不胜感激任何帮助!因为这个原因,我整天都在摸不着头脑。
先谢谢,
克里斯
答案 0 :(得分:1)
我通过使用JS打开Modal找到了解决问题的方法 - 见下文:
http://getbootstrap.com/javascript/#js-programmatic-api
我删除了
data-toggle="modal" data-target="#myModal"
从LinkButton 添加 onClick =&#34; LinkButton1_Click&#34; - 见下文:
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" OnClick="LinkButton1_Click" CommandName="Select" Text="Select"></asp:LinkButton>
然后我在后面的VB.NET代码中引用它:
Protected Sub LinkButton1_Click(sender As Object, e As EventArgs)
ScriptManager.RegisterStartupScript(Me, Me.GetType(), "myModal", "$('#myModal').modal()", True)
End Sub