Bonjour,
J'ai un petit probleme, j'ai créer un
DetailsView dans une
AjaxModalPopupExtender.
Dans ce details view j'ai besoin d'un explorateur de fichier("
Parcourir") pour recuperer un repertoire:
<asp:TemplateField HeaderText="Chemin" >
<InsertItemTemplate>
<input type="file" id="idFileUpLoad1" name="SequenceFile" onchange="trait(this)"/>
</InsertItemTemplate>
</asp:TemplateField>J'ai besoin d'extraire le nom de fichier, l'extension, et le repertoire pour les mettre dans les champs du details view.
Le probleme c'est que je n'arrive pas à detecter l evenement "
onchange" dans le code c#, mais j' y arrive en javascript.
function trait(zone)
{
var adr=zone.value.lastIndexOf("\\");
var rep = zone.value.substring(0,adr+1);
var fic=zone.value.substring(adr+1).split(".");
alert("rep:"+rep+"\r\n"+"Fichier:"+fic[0]+"\r\n"+ "Extension:"+fic[1]);
} L'autre probleme c'est quand Javascript je n'arrive pas à mettre à jour les champs du DetailView (<asp:BoundField DataField="Sequence_Name" HeaderText="Name" SortExpression="Sequence_Name" /> par exemple) car je ne peux mettre d'"ID" a un BoundField .
et si je passe par <asp:TemplateField> je n'ai plus le lien "Datafield" avec la SqlDataSource pour l'insert de la colonne.
Code:
<asp:Button ID="Button1" runat="server" CssClass="style1" Text="Add Sequence" Width="130px" />
<ajaxToolKit:ModalPopupExtender ID="mpeSequence" runat="server"
TargetControlID="Button1" PopupControlID="pnlSequence" CancelControlID="btnCancel"
BackgroundCssClass="modalBackground" PopupDragHandleControlID="SequenceCaption" Drag="true" >
</ajaxToolKit:ModalPopupExtender>
<asp:Panel ID="pnlSequence" runat="server" CssClass="modalBox" Style="display: none;" Width="400px">
<asp:Panel ID="SequenceCaption" runat="server" Style="margin-bottom: 10px; cursor: hand;">SEQUENCE EDITOR</asp:Panel>
<div style="margin-left:auto; margin-right:auto">
<asp:DetailsView DefaultMode ="Insert" AutoGenerateRows="False" DataKeyNames="Job_Id" DataSourceID="SqlDataSource4" HeaderText="New Sequence" ID="DetailsView1" runat="server"
Width="350px" OnItemInserted="DetailsView1_ItemInserted">
<Fields>
<asp:BoundField DataField="Sequence_Name" HeaderText="Name"
SortExpression="Sequence_Name" />
<asp:BoundField DataField="Dir_Path" HeaderText="Path Directory"
SortExpression="Dir_Path" HtmlEncode="true"/>
<asp:TemplateField HeaderText="Chemin" >
<InsertItemTemplate>
<input type="file" id="idFileUpLoad1" name="SequenceFile" onchange="trait(this)"/>
</InsertItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Idx_Debut" HeaderText="Idx_Debut"
SortExpression="Idx_Debut" />
<asp:BoundField DataField="Idx_Fin" HeaderText="Idx_Fin"
SortExpression="Idx_Fin" />
<asp:BoundField DataField="Nb_Digit" HeaderText="Nb_Digit"
SortExpression="Nb_Digit" />
<asp:BoundField DataField="Step" HeaderText="Step"
SortExpression="Step" />
<asp:BoundField DataField="Hold" HeaderText="Hold"
SortExpression="Hold" />
<asp:CommandField ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
</div>
<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:Shooter_Test1ConnectionString %>"
InsertCommand="INSERT INTO [Sequence] (Sequence_Name,Dir_Path,Job_Id,Idx_Debut,Idx_Fin,Nb_Digit,Step,Hold)
VALUES (@Sequence_Name, @Dir_Path, @Job_Id,@Idx_Debut,@Idx_Fin,@Nb_Digit,@Step,@Hold)">
<InsertParameters>
<asp:QueryStringParameter DefaultValue="0" Name="Job_Id" QueryStringField="Job_Id" Type="Int32" />
<asp:Parameter Name="Sequence_Name" Type="String" />
<asp:Parameter Name="Dir_Path" Type="String" />
<asp:Parameter Name="Idx_Debut" Type="Int32" />
<asp:Parameter Name="Idx_Fin" Type="Int32" />
<asp:Parameter Name="Nb_Digit" Type="Int32" />
<asp:Parameter Name="Step" Type="Int32" />
<asp:Parameter Name="Hold" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
<div style="white-space: nowrap; text-align: center;">
<!--<asp:Button ID="btnSaveSequence" runat="server" Text="Save Sequence" />-->
<asp:Button ID="btnCancel" runat="server" CausesValidation="false" Text="Cancel" />
</div>
</asp:Panel>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
</td>
</tr>
<tr>
Si vous trouvez un moyens soit de detecter en c# la selection d'un fichier ( ca serait top)
Ou de remplir les champs de la detailview par le javascript sans couper le lien avec la sqlDatasource
Merci D'avance de votre Aide