如何在页脚部分添加带有文件名的下拉列表?

Posted

技术标签:

【中文标题】如何在页脚部分添加带有文件名的下拉列表?【英文标题】:How can i add dropdown list with files name in footer section? 【发布时间】:2018-11-21 11:58:17 【问题描述】:

我的问题是下一个: 我必须制作一个必须包含测试问题的页面。 我已经为普通问题做了它,但在下一点,我需要页脚模板中的下拉列表,用户可以从该列表中选择图像名称,文本框获取文件路径。

文件路径如下: "~/Dokuments/" + v_tren_dirnev(每个测试不同的文件夹) + "/Teszt/"

aspx的代码:

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Kerdesek_Valaszok.aspx.cs" Inherits="Kerdesek_Valaszok" %>
<%@ Register Src="UserControl/AutoRedirect.ascx" TagName="AutoRedirect" TagPrefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" 
runat="Server">
<uc1:AutoRedirect ID="AutoRedirect1" runat="server" />
<asp:SqlDataSource ID="SqlDSTreningek" runat="server" ConnectionString="<%$ ConnectionStrings:dbcs %>"SelectCommand="SELECT * FROM [trening] WHERE ([tren_deleted] = @tren_deleted)">
    <SelectParameters>
        <asp:Parameter DefaultValue="false" Name="tren_deleted" Type="Boolean" />
    </SelectParameters>
</asp:SqlDataSource>

<asp:ObjectDataSource ID="odsKerdesek" runat="server" DeleteMethod="DeleteKerdes" InsertMethod="InsertKerdes" SelectMethod="GetAllKerdes" TypeName="trening.KerdesekDataAccessLayer" UpdateMethod="UpdateKerdes">
    <SelectParameters>
        <asp:Parameter Name="TrenId" Type="Int32" />
    </SelectParameters>
    <DeleteParameters>
        <asp:Parameter Name="KerdId" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="KerdTrenId" Type="Int32" />
        <asp:Parameter Name="KerdKerdes" Type="String" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="KerdId" Type="Int32" />
        <asp:Parameter Name="KerdKerdes" Type="String" />
    </UpdateParameters>
</asp:ObjectDataSource>

<asp:ObjectDataSource ID="odsValaszok" runat="server" DeleteMethod="DeleteValasz" InsertMethod="InsertValasz" SelectMethod="GetAllValasz" TypeName="trening.ValaszokDataAccessLayer" UpdateMethod="UpdateValasz">
    <SelectParameters>
        <asp:Parameter Name="KerdId" Type="Int32" />
    </SelectParameters>
    <DeleteParameters>
        <asp:Parameter Name="ValaId" Type="Int32" />
    </DeleteParameters>
    <InsertParameters>
        <asp:Parameter Name="ValaKerdId" Type="Int32" />
        <asp:Parameter Name="ValaValasz" Type="String" />
        <asp:Parameter Name="ValaHelyes" Type="Boolean" />
    </InsertParameters>
    <UpdateParameters>
        <asp:Parameter Name="ValaId" Type="Int32" />
        <asp:Parameter Name="ValaValasz" Type="String" />
        <asp:Parameter Name="ValaHelyes" Type="Boolean" />
    </UpdateParameters>
</asp:ObjectDataSource>
<br />
<table id="kerdesek_valaszok">
    <tr>
        <td colspan="3">
            <h2>Tréning kérdések és válaszok karbantartása</h2>
        </td>
    </tr>
    <tr>
        <td colspan="3">
            <asp:DropDownList ID="ddlTreningek" runat="server" DataSourceID="SqlDSTreningek" DataTextField="tren_megnevezes" DataValueField="tren_id" Font-Size="Large" AutoPostBack="True" OnDataBound="ddlTreningek_DataBound" OnSelectedIndexChanged="ddlTreningek_SelectedIndexChanged">
            </asp:DropDownList>
       </td>
    </tr>
    <tr>
        <td colspan="3">
            <asp:GridView ID="gvKerdesek" runat="server" AutoGenerateColumns="False" DataKeyNames="kerd_id" DataSourceID="odsKerdesek" CellPadding="4" ShowFooter="True" ForeColor="#333333" GridLines="None" HorizontalAlign="Center" OnRowCommand="gvKerdesek_RowCommand" OnSelectedIndexChanged="gvKerdesek_SelectedIndexChanged">
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                <Columns>
                    <asp:TemplateField HeaderText="kerd_id" InsertVisible="False" SortExpression="kerd_id" Visible="False">
                        <EditItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Eval("kerd_id") %>'></asp:Label>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Bind("kerd_id") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="kerd_tren_id" InsertVisible="False" SortExpression="kerd_tren_id" Visible="False">
                        <EditItemTemplate>
                            <asp:Label ID="Label3" runat="server" Text='<%# Bind("kerd_tren_id") %>'></asp:Label>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label4" runat="server" Text='<%# Bind("kerd_tren_id") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Kérdések" SortExpression="kerd_kerdes">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("kerd_kerdes") %>' MaxLength="250" Size="100"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rfvTextBox1" runat="server" ErrorMessage="Kötelező a kérdést megadni!" ValidationGroup="update" ControlToValidate="TextBox1" Text="*" ForeColor="Red"></asp:RequiredFieldValidator>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("kerd_kerdes") %>'></asp:Label>
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txbNewKerdes" runat="server" MaxLength="250" Size="100"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rfvTextBox2" runat="server" ErrorMessage="Kötelező az új kérdést megadni" ValidationGroup="insert" ControlToValidate="txbNewKerdes" Text="*" ForeColor="Red"></asp:RequiredFieldValidator>
                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <EditItemTemplate>
                            <asp:ImageButton ID="btnUpdateKerdes" runat="server" CausesValidation="True" ValidationGroup="update" CommandName="UpdateKerdes" CommandArgument='<%# Eval("kerd_id") %>' ImageUrl="~/App_Themes/Theme1/update.png" Height="25" ToolTip="Módosítás" />
                            &nbsp;<asp:ImageButton ID="btnCancelKerdes" runat="server" CausesValidation="false" CommandName="Cancel" ImageUrl="~/App_Themes/Theme1/cancel.png" Height="25" ToolTip="Mégsem" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:ImageButton ID="btnEditKerdes" runat="server" CausesValidation="false" CommandName="EditKerdes" CommandArgument='<%# Eval("kerd_id") %>' ImageUrl="~/App_Themes/Theme1/edit.png" Height="25" ToolTip="Szerkesztés" />
                            &nbsp;<asp:ImageButton ID="btnSelectKerdes" runat="server" CausesValidation="false" CommandName="SelectKerdes" CommandArgument='<%# Eval("kerd_id") %>' ImageUrl="~/App_Themes/Theme1/select.png" Height="25" ToolTip="Kiválasztás" />
                            &nbsp;<asp:ImageButton ID="btnDeleteKerdes" runat="server" CausesValidation="false" CommandName="DeleteKerdes" CommandArgument='<%# Eval("kerd_id") %>' ImageUrl="~/App_Themes/Theme1/delete.png" Height="25" ToolTip="Törlés"  OnClientClick="return confirm('Biztosan törölni akarja ezt a kérdést és a hozzátartozó válaszokat?');" />
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:ImageButton ID="btnInsertKerdes" CausesValidation="true"  ValidationGroup="insert" runat="server" OnClick="btnInsertKerdes_Click" ImageUrl="~/App_Themes/Theme1/insert.png" Height="25" ToolTip="Új kérdés rögzítése" />

                            <!--AG dropdown list -->
                            <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged"></asp:DropDownList>

                            </FooterTemplate>
                        <ItemStyle Wrap="False" />
                    </asp:TemplateField>
                </Columns>
                <EditRowStyle BackColor="#999999" />
                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <SelectedRowStyle BackColor="#FF9900" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#E9E7E2" />
                <SortedAscendingHeaderStyle BackColor="#506C8C" />
                <SortedDescendingCellStyle BackColor="#FFFDF8" />
                <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
            </asp:GridView>
            <br />
            <asp:ValidationSummary ID="ValidationSummary1" ValidationGroup="insert" runat="server" ForeColor="Red" ShowMessageBox="true" ShowSummary="false" />
            <asp:ValidationSummary ID="ValidationSummary2" ValidationGroup="update" runat="server" ForeColor="Red" ShowMessageBox="true" ShowSummary="false" />
            <asp:ValidationSummary ID="ValidationSummary3" ValidationGroup="insertValasz" runat="server" ForeColor="Red" ShowMessageBox="true" ShowSummary="false" />
            <asp:ValidationSummary ID="ValidationSummary4" ValidationGroup="updateValasz" runat="server" ForeColor="Red" ShowMessageBox="true" ShowSummary="false" />
        </td>
    </tr>

    <tr>
        <td colspan="3">
            <br />
            <asp:GridView ID="gvValaszok" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="vala_id" DataSourceID="odsValaszok" ShowFooter="True" ForeColor="#333333" GridLines="None" EmptyDataText="Nincsenek még válaszok megadva!" HorizontalAlign="Center" OnRowCommand="gvValaszok_RowCommand">
                <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                <Columns>
                    <asp:TemplateField HeaderText="vala_id" InsertVisible="False" SortExpression="vala_id" Visible="False">
                        <EditItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Eval("vala_id") %>'></asp:Label>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Bind("vala_id") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="vala_kerd_id" SortExpression="vala_kerd_id" Visible="False">
                        <EditItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Eval("vala_kerd_id") %>'></asp:Label>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label3" runat="server" Text='<%# Bind("vala_kerd_id") %>'></asp:Label>
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:Label ID="lblNewValaKerdId" runat="server" Text='<%# Bind("vala_kerd_id") %>'></asp:Label>
                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Válaszok" SortExpression="vala_valasz">
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("vala_valasz") %>' MaxLength="250" size="100"></asp:TextBox>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("vala_valasz") %>'></asp:Label>
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:TextBox ID="txbNewValasz" runat="server" MaxLength="250" size="100"></asp:TextBox>
                            <asp:RequiredFieldValidator ID="rfvTextBox3" runat="server" ErrorMessage="Kötelező az új választ megadni" ValidationGroup="insertValasz" ControlToValidate="txbNewValasz" Text="*" ForeColor="Red"></asp:RequiredFieldValidator>
                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Helyes-e?" SortExpression="vala_helyes">
                        <EditItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("vala_helyes") %>' />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("vala_helyes") %>' Enabled="false" />
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:CheckBox ID="cbxNewHelyes" runat="server" />
                        </FooterTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <EditItemTemplate>
                            <asp:ImageButton ID="btnUpdateValasz" runat="server" CausesValidation="True" CommandName="UpdateValasz" CommandArgument='<%# Eval("vala_id") %>' ImageUrl="~/App_Themes/Theme1/update.png" Height="25" ToolTip="Módosítás" />
                            &nbsp;<asp:ImageButton ID="btnCancelValasz" runat="server" CausesValidation="false" CommandName="Cancel" ImageUrl="~/App_Themes/Theme1/cancel.png" Height="25" ToolTip="Mégsem" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:ImageButton ID="btnEditValasz" runat="server" CausesValidation="false" CommandName="Edit" ImageUrl="~/App_Themes/Theme1/edit.png" Height="25" ToolTip="Szerkesztés" />
                            &nbsp;<asp:ImageButton ID="btnDeleteValasz" runat="server" CausesValidation="false" CommandName="DeleteValasz" CommandArgument='<%# Eval("vala_id") %>' ImageUrl="~/App_Themes/Theme1/delete.png" Height="25" ToolTip="Törlés" OnClientClick="return confirm('Biztosan törölni akarja ezt a választ?');" />
                        </ItemTemplate>
                        <FooterTemplate>
                            <asp:ImageButton ID="btnInsertValasz" CausesValidation="true" ValidationGroup="insertValasz" runat="server" OnClick="btnInsertValasz_Click" ImageUrl="~/App_Themes/Theme1/insert.png" Height="25" ToolTip="Új kérdés rögzítése" />
                        </FooterTemplate>
                    </asp:TemplateField>
                </Columns>
                <EditRowStyle BackColor="#999999" />
                <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                <SortedAscendingCellStyle BackColor="#E9E7E2" />
                <SortedAscendingHeaderStyle BackColor="#506C8C" />
                <SortedDescendingCellStyle BackColor="#FFFDF8" />
                <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
            </asp:GridView>
        </td>
    </tr>
</table>

这背后的代码:

public partial class Kerdesek_Valaszok : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
 
   

protected void btnInsertKerdes_Click(object sender,  EventArgs e)

    odsKerdesek.InsertParameters["KerdTrenId"].DefaultValue = ddlTreningek.SelectedValue;
    odsKerdesek.InsertParameters["KerdKerdes"].DefaultValue = ((TextBox)gvKerdesek.FooterRow.FindControl("txbNewKerdes")).Text;
    odsKerdesek.Insert();
    gvKerdesek.DataBind();


protected void btnInsertValasz_Click(object sender, EventArgs e)

    if (gvKerdesek.SelectedRow != null)
    
        odsValaszok.InsertParameters["ValaKerdId"].DefaultValue = ((Label)gvValaszok.Rows[0].FindControl("Label3")).Text;
        odsValaszok.InsertParameters["ValaValasz"].DefaultValue = ((TextBox)gvValaszok.FooterRow.FindControl("txbNewValasz")).Text;
        odsValaszok.InsertParameters["ValaHelyes"].DefaultValue = ((CheckBox)gvValaszok.FooterRow.FindControl("cbxNewHelyes")).Checked.ToString();
        odsValaszok.Insert();
        gvValaszok.DataBind();
     else
    
        ScriptManager.RegisterStartupScript(this, this.GetType(), "popup", "alert('Nincs a kérdés kiválasztva!');", true);
    


protected void ddlTreningek_DataBound(object sender, EventArgs e)

    odsKerdesek.SelectParameters["TrenId"].DefaultValue = ddlTreningek.SelectedValue;
    odsKerdesek.Select();


protected void ddlTreningek_SelectedIndexChanged(object sender, EventArgs e)

    odsKerdesek.SelectParameters["TrenId"].DefaultValue = ddlTreningek.SelectedValue;
    odsKerdesek.Select();
    gvKerdesek.SelectRow(-1);


protected void gvKerdesek_RowCommand(object sender, GridViewCommandEventArgs e)

    if (e.CommandName == "SelectKerdes")
    
        string tmp = e.CommandArgument.ToString();
        int selind = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
        odsValaszok.SelectParameters["KerdId"].DefaultValue = e.CommandArgument.ToString();
        odsValaszok.Select();
        gvKerdesek.SelectedIndex = selind;
        gvKerdesek.DataBind();
     else if (e.CommandName == "DeleteKerdes")
    
        KerdesekDataAccessLayer.DeleteKerdes(Convert.ToInt32(e.CommandArgument));
        gvKerdesek.DataBind();
     else if (e.CommandName == "EditKerdes")
    
        int rowindex = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
        gvKerdesek.EditIndex = rowindex;
        gvKerdesek.DataBind();
     else if (e.CommandName == "UpdateKerdes")
    
        int rowindex = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
        int kerd_id = Convert.ToInt32(e.CommandArgument);
        odsKerdesek.UpdateParameters["KerdId"].DefaultValue = ((Label)gvKerdesek.Rows[rowindex].FindControl("Label1")).Text;
        odsKerdesek.UpdateParameters["KerdKerdes"].DefaultValue = ((TextBox)gvKerdesek.Rows[rowindex].FindControl("TextBox1")).Text;
        odsKerdesek.Update();
        gvKerdesek.EditIndex = -1;
        gvKerdesek.DataBind();
    


protected void gvValaszok_RowCommand(object sender, GridViewCommandEventArgs e)

    if (e.CommandName == "DeleteValasz")
    
        ValaszokDataAccessLayer.DeleteValasz(Convert.ToInt32(e.CommandArgument));
        gvValaszok.DataBind();
     else if (e.CommandName == "UpdateValasz")
    
        int rowindex = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
        int vala_id = Convert.ToInt32(e.CommandArgument);
        odsValaszok.UpdateParameters["ValaId"].DefaultValue = ((Label)gvValaszok.Rows[rowindex].FindControl("Label1")).Text;
        odsValaszok.UpdateParameters["ValaValasz"].DefaultValue = ((TextBox)gvValaszok.Rows[rowindex].FindControl("TextBox1")).Text;
        odsValaszok.UpdateParameters["ValaHelyes"].DefaultValue = ((CheckBox)gvValaszok.Rows[rowindex].FindControl("CheckBox1")).Checked.ToString();
        odsValaszok.Update();
        gvValaszok.EditIndex = -1;
        gvValaszok.DataBind();
    

【问题讨论】:

您好!欢迎来到 ***。您尝试过什么以及您想要实现什么并不是很清楚,您能否提供一个更具体的示例? 我的问题的一个例子:我想添加一个新问题。我将它写入文本框,然后按插入按钮,然后将我的问题放入 sql 数据库中。然后我想添加图像作为问题。我之前已经上传了图片,它们在路径中,我在上面写下。当我想添加它时,有一个下拉列表,其中可能包含图像名称(例如:image1.jpg)。在我从列表中选择一个之后,文本框会自动填充图像的路径。然后它也适用于正常的问题。 并且下拉列表必须在页脚模板处,因为插入功能也在那里。 【参考方案1】:

正如我之前所说,问题如下。这是外观和 asp 代码的图像。我做了一个替代解决方案,但我也真的想要这个。 The image 我需要一个代码: 下拉列表必须包含一个文件夹文件名,在我选择其中一个后,左侧的文本框会填充文件的路径,如下所示:

~/Dokuments/10001/Teszt/Slide01.JPG 10001 可以通过顶部下拉列表进行更改,其中包含不同的测试名称。如果你选择一个测试,那么路径会自动改变,所以这不是问题。 然后,当您从下拉列表中选择默认元素时,您不能仅以一种方式更改文本框的内容。

【讨论】:

以上是关于如何在页脚部分添加带有文件名的下拉列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Angular js 制作搜索类型下拉列表?

Slickgrid,带有下拉选择列表的列?

JQuery应用:实现下拉列表选择一项,然后在第二个下拉列表显示全部。谢谢了 请一定帮我做一下!200分!

带有 Knockout 下拉列表问题的边界半径

带有分层邻接模型MySql和PHP的缩进HTML下拉列表

为下拉框创建带有变量的 XML 文件