将数据从HTML中的按钮拉到aspx页面

时间:2014-02-19 04:50:13

标签: c# asp.net razor

这是我到目前为止所拥有的:

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>

1 个答案:

答案 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>
....