重複の可能性:
ASP.net ページの条件付きロジック
ASP.NET は初めてです。
いくつかのテーブルがあり、TD タグを使用して GridView と DetailsView を横に配置したテーブルがあるとします。これらの DetailsView と GridView は、1 回クリックして別の更新を行うなどの関連性はなく、レコードを表示するだけであることに注意してください。DetailsView には、追加、編集、および削除オプションもあります。以下の例。
<form name="form1" runat="server" class="FormDetail">
<table width="80%" align="center" >
<tr>
<td width="20%"></td>
<td width="80%" class="PageTitle"></td>
<td width="20%">
<asp:Button runat="server" CommandName="AddNewProposal" ID="AddNewProposal" Text="Create Note"
href="ProposalCreateNote.aspx?ProposalID=ProposalID="
title="Create Note" class="button3"/>
</td>
</tr>
</table>
<div style="width:40%; margin-right: auto; margin-left: auto;">
<asp:DetailsView AutoGenerateRows="False" DataKeyNames="ProposedID" DataSourceID="SqlDataSource2"
HeaderText="Proposal Detail View" ID="DetailsView1"
runat="server" Width="100%" validateRequest="false"
CssClass="products"
HeaderStyle-CssClass="header"
FieldHeaderStyle-CssClass="fieldHeader"
AlternatingRowStyle-CssClass="alternating"
RowStyle
CommandRowStyle-CssClass="command"
PagerStyle-CssClass="pager"
>
<Fields>
<asp:TemplateField HeaderText="ProposedID" SortExpression="Name" >
<ItemTemplate >
<asp:Label ID="ProposalID" runat="Server" style="text-align:left;"
Text='<%# Eval("ProposedID")%>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="MDFName" HeaderText="MDF Name" SortExpression="MDFName" />
<asp:TemplateField HeaderText="VendorName">
<ItemTemplate>
<asp:Label ID="lblVendorName" runat="Server" style="text-align:left;" Text='<%# Eval("VendorName")%>'/>
</ItemTemplate>
<InsertItemTemplate>
<asp:DropDownList id="insertVendorName" datasourceid="VendorSqlDataSource"
datatextfield="VendorName" DataValueField="VendorID"
SelectedValue='<%# Bind("VendorID") %>'
OnSelectedIndexChanged="ddlVendor_SelectedIndexChanged"
runat="server" AutoPostBack="true">
<asp:ListItem Text="Select" Value="-1"></asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="VendorSqlDataSource" ConnectionString="<%$Connectionstrings:ConnectionString%>"
SelectCommand="SELECT VendorID, VendorName from MDF_Vendor" runat="server">
</asp:SqlDataSource>
</InsertItemTemplate>
<EditItemTemplate>
<asp:DropDownList id="updateVendorName" datasourceid="VendorSqlDataSource" AutoPostBack="true"
datatextfield="VendorName" DataValueField="VendorID"
SelectedValue='<%# Bind("VendorID") %>'
runat="server"
OnSelectedIndexChanged="ddlVendor_SelectedIndexChanged" />
<asp:SqlDataSource ID="VendorSqlDataSource" ConnectionString="<%$Connectionstrings:ConnectionString%>"
SelectCommand="SELECT VendorID, VendorName from MDF_Vendor" runat="server">
</asp:SqlDataSource>
</EditItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT p.*
, (SELECT VendorName FROM MDF_Vendor WHERE VendorID = p.VendorID) AS VendorName
, (SELECT VendorBUName FROM MDF_VendorBU WHERE VendorBUID = p.VendorBUID) AS VendorBUName
FROM dbo.MDF_Proposed p Where p.ProposedID = @ProposedID"
UpdateCommand="UPDATE [MDF_Proposed] SET [VendorID] = @VendorID
, [VendorBUID] = @VendorBUID
, [MDFSummary] = @MDFSummary
, [MDFAmount] = @MDFAmount
, [BeginDate] = @BeginDate
, [EndDate] = @EndDate
WHERE ProposedID = @ProposedID"
InsertCommand = "INSERT INTO [MDF_Proposed] ([VendorID], [VendorBUID], [MDFName], [BeginDate], [EndDate], [CreatedBy])
VALUES (@VendorID, @VendorBUID, @MDFName, @BeginDate, @EndDate, '1234') "
DeleteCommand = "DELETE [MDF_Proposed] WHERE ProposedID = @ProposedID"
>
<SelectParameters>
<asp:QueryStringParameter Name="ProposedID" QueryStringField="ProposedID" runat="server" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="ProposedID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
</div>
<hr align="center" width="96%" size="1" color="darkblue" />
<!-- //////////////////// NEED TO HIDE THI TABLE WHERE QueryString Mode=Insert ///////////////////// -->
<table align="center" width="96%" id="table2" border="0">
<tr>
<td class="center TitleSmall">Notes</td>
</tr>
<tr>
<td width="48%">
<asp:GridView ID="GridView_Note" runat="server"
AutoGenerateColumns="False"
DataKeyNames="ProposedNoteID"
DataSourceID="dsProposalNote"
ShowFooter="true"
CssClass="mGrid"
PagerStyle-CssClass="pgr"
AlternatingRowStyle-CssClass="alt"
>
<AlternatingRowStyle ForeColor="Black" BackColor="#F7F6F3" VerticalAlign="top" />
<HeaderStyle BackColor="#B5DAFF" Font-Bold="True" HorizontalAlign="center" />
<PagerStyle BackColor="Gold" ForeColor="White" HorizontalAlign="Center" />
<FooterStyle Font-Bold="True" ForeColor="White" BackColor="" />
<Columns>
<asp:BoundField DataField="ProposedNoteID" HeaderText="ID" ItemStyle-Width="5%" />
<asp:TemplateField ItemStyle-Width="70%">
<ItemTemplate>
<asp:Label runat="server" DataField="Note" HeaderText="Note" Text='<%#Eval("Note") %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CreatedBy" HeaderText="Created By" ItemStyle-Width="13%"/>
<asp:BoundField DataField="CreatedDate" HeaderText="Created Date" ItemStyle-Width="12%" DataFormatString="{0:dd/MM/yyyy}"/>
<asp:TemplateField HeaderText="Delete">
<ItemTemplate>
<asp:LinkButton ID="btnDelete" runat="server" CommandName="Delete" Text="Delete"
OnClientClick="return confirm('Are you certain you want to delete this?');"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:sqldatasource ID="dsProposalNote" runat="server" ConnectionString="<%$ConnectionStrings:ConnectionString %>"
SelectCommand="Select * from MDF_ProposedNote where ProposedID = @ProposedID"
DeleteCommand="DELETE MDF_ProposedNote where ProposedNoteID = @ProposedNoteID"
>
<SelectParameters>
<asp:QueryStringParameter Name="ProposedID" QueryStringField="ProposedID" runat="server" />
</SelectParameters>
</asp:sqldatasource>
</td>
<td></td>
<td width="48%"></td>
</tr>
</table>
</form>
私がやりたいことは、QueryString が URL に挿入モードで送信されている場合 (Page1.aspx?mode=insert) です。ページの読み込み時に、DetailsView1 を挿入モードにし、GridView (GridView_Note) とその他の HTML コードを含む Table2 を非表示にします。
これが従来の ASP であれば、Page.asp?mode=insert の条件に基づいて、queryString 値を変数に格納し、表示する前に do および IF ステートメントを使用できると思います。
ASP.NET でこれを達成する方法について何か提案はありますか? 変数を格納し、HTML コードでインラインに挿入するにはどうすればよいですか? 私があなたを混乱させた場合はお知らせください。前もって感謝します。