0

ページ内の多くのファイルの情報を取得しようとしていますが、fileUploader、テキスト ボックス、hiddenField はユーザー コントロールにあります。javascript を使用して値を非表示フィールドに保存すると、それが実行されることがわかりますが、コード ビハインドでこれらの値を取得しようとすると、すべての値が失われます。助けが必要ですが、その 3 日間作業していて、自分で解決策を見つけることができません。

私のコードは次のとおりです。

ユーザーコントロールで:

<table class ="total">
    <tr>
        <td class="texto">
            <asp:Label ID="lblFotos" runat="server" Font-Size="Small" 
                Text="Fotos : "></asp:Label>
        </td>
        <td class="campos">
            <asp:FileUpload ID="fuFotoPropiedad" runat="server"  />
            <asp:Button ID="btnAgregarFoto" runat="server" Height="25px" Text="Agregar" 
                OnClientClick="agregarFoto(); return false;"/>
        </td>
    </tr>
    <tr>
        <td class="total" colspan="2" align="center"> 
            <asp:TextBox ID="txtFotosPropiedad" runat="server" Height="81px" TextMode="MultiLine" 
                Width="299px" ReadOnly="True"></asp:TextBox>
            <asp:HiddenField ID="hdFotosPropiedad" runat="server" />
        </td>
    </tr>
</table>

JavaScript では:

function agregarFoto() {
    var fileUploadId = 'ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_fuFotoPropiedad';
    var txtFotosPropiedadId = 'ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_txtFotosPropiedad';
    var hdFotosPropiedadId = 'ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_hdFotosPropiedad';
    var fileUpload = document.getElementById(fileUploadId);
    var txtFotosPropiedad = document.getElementById(txtFotosPropiedadId);
    var hdFotosPropiedad = document.getElementById(hdFotosPropiedadId);
    if (hdFotosPropiedad.value == "") {
        txtFotosPropiedad.value = fileUpload.value;
        txtFotosPropiedad.Text = fileUpload.value;
        hdFotosPropiedad.Value = fileUpload.value;
        hdFotosPropiedad.innetText = fileUpload.value;
    } else {
        txtFotosPropiedad.value = txtFotosPropiedad.value + ";" + fileUpload.value;
        txtFotosPropiedad.Text = txtFotosPropiedad.value + ";" + fileUpload.value;
        hdFotosPropiedad.Value = hdFotosPropiedad.Value + ";" + fileUpload.value;
        hdFotosPropiedad.innetText = hdFotosPropiedad.Value + ";" + fileUpload.value;
    }
    var control = $("#ctl00_ContentPlaceHolder1_wucMantenimientoPropiedad1_fuFotoPropiedad");
    control.replaceWith( control.val('').clone( true ) );
    return false;
}

コードビハインド:

string[] fotos = hdFotosPropiedad.Value.Split(';');

しかし(空)hdFotosPropiedad.Valueですnull、ありがとう。

4

1 に答える 1

0

JavaScript では大文字と小文字が区別されるため、間違った変数に割り当てています。

交換

if(hdFotosPropiedad.value == "")
{
    txtFotosPropiedad.value = fileUpload.value;
    txtFotosPropiedad.Text = fileUpload.value;
    hdFotosPropiedad.Value = fileUpload.value;
    hdFotosPropiedad.innetText = fileUpload.value;
}
else
{
    txtFotosPropiedad.value = txtFotosPropiedad.value + ";" + fileUpload.value;
    txtFotosPropiedad.Text = txtFotosPropiedad.value + ";" + fileUpload.value;
    hdFotosPropiedad.Value = hdFotosPropiedad.Value + ";" + fileUpload.value;
    hdFotosPropiedad.innetText = hdFotosPropiedad.Value + ";" + fileUpload.value;
}

if(hdFotosPropiedad.value == "")
{
    txtFotosPropiedad.value = fileUpload.value;
    hdFotosPropiedad.value = fileUpload.value;       // Note value NOT Value
}
else
{
    txtFotosPropiedad.value = txtFotosPropiedad.value + ";" + fileUpload.value;
    hdFotosPropiedad.value = hdFotosPropiedad.value + ";" + fileUpload.value;
}

したがって、.Value ではなく .value に代入しています。.Text の割り当ても削除しました。つまり、投稿したコードで目的を果たさなかったからです。

于 2013-02-25T18:49:21.350 に答える