这是我到目前为止所拥有的:
Aspx文件:
<asp:DataList ID="DataList1" runat="server" DataKeyField="AppId" DataSourceID="TestDB" RepeatColumns="1">
<ItemTemplate>
AppId:
<asp:Label ID="AppIdLabel" runat="server" Text='<%# Eval("AppId") %>' />
<br />
ToonName:
<asp:Label ID="NameLabel" runat="server" Text='<%# Eval("Name") %>' />
<br />
AppStatus:
<asp:Label ID="AppStatusLabel" runat="server" Text='<%# Eval("AppStatus") %>' />
<br />
<br />
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="TestDB" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>" SelectCommand="SELECT * FROM [Applications] WHERE ([AppId] = @AppId)">
<SelectParameters>
<asp:QueryStringParameter Name="AppId" QueryStringField="btnView" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
使用数据库自动填充的网格,并为要对该特定条目执行的每个操作创建一个按钮。
<form>
<div id="grid">
@grid.GetHtml(
tableStyle : "grid",
alternatingRowStyle : "alt",
headerStyle : "header",
columns: grid.Columns(
grid.Column("AppId", "Action", format: @<text>
<button type="submit" class="view-app" id="@item.AppId" name="btnView" value="@item.AppId">View</button>
<button type="submit" class="approve-app" id="@item.AppId" name="btnApprove" value="@item.AppId">Approve</button>
<button type="submit" class="deny-app" id="@item.AppId" name="btnDeny" value="@item.AppId">Deny</button>
<button type="submit" class="delete-app" id="@item.AppId" name="btnDelete" value ="@item.AppId">Delete</button>
</text>),
grid.Column("Name", "Name"),
grid.Column("AppDate", "AppDate"),
grid.Column("AppStatus", "Status")
)
)
</div>
</form>
<br />
<fieldset>
<legend>Applicant Answers</legend>
<iframe id="ff" width="100%" height="50px" frameborder="0" scroll="yes" src="Applicant.aspx"></iframe>
</fieldset>
我尝试做的是当用户点击按钮时,我希望在aspx datalist中填充数据。我知道该按钮确实创建了QueryString“btnView =”。此外,SQL Query确实有效,但不会填充任何数据,也不会发生错误。这是否有效,或者我需要以不同的方式处理这个问题吗?
更新以反映Grundy的解决方案
编辑如下:
IFrame改为:
<fieldset>
<legend>Applicant Answers</legend>
<script type="text/javascript">
function ShowDetail(appId) {
document.getElementById("ff").src ="Applicant.aspx?AppId=" + appId;};
</script>
<iframe id="ff" width="300" height="300"></iframe>
</fieldset>
按钮更改为:
<button type="button" onclick="ShowDetail(this.value)" class="view-app" id="@item.AppId" name="btnView" value="@item.AppId">View</button>
答案 0 :(得分:1)
据我所知,您不需要使用submit
,而是需要更改iframe的src
属性。改变你的代码就像这样
<script type="text/javascript">
function ShowDetail(appId) {
document.getElementById("ff").src = "Applicant.aspx?AppId=" + appId;
}
</script>
....
<button type="button" onclick="ShowDetail(this.value)" class="view-app" id="@item.AppId" name="btnView" value="@item.AppId">View</button>
....