【问题标题】:Want to call details view from a gridview想要从网格视图调用详细信息视图
【发布时间】:2015-11-11 23:55:52
【问题描述】:

我有一个带有工作订单的网格视图,其中一半的工作订单详细信息由请求者输入并提交,另一半由主管输入

所以主管将查看创建的工作订单,然后在我的网格视图中输入他的一半我创建了一个名为 work on 的模板字段,当主管单击此按钮时,它是一个链接按钮我希望查看详细信息以模态弹出的形式出现。

我的 gridview .aspx 代码

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
  AutoGenerateColumns="False" BackColor="#39B1CC" 
  DataSourceID="SqlDataSource1" ForeColor="White" AllowSorting="True" 
  DataKeyNames="WorkOrderNum" PostBack = "True" ShowHeaderWhenEmpty="True" EmptyDataText="There were no work orders created to 
be viewed at this time please create a Work Order"
     onrowupdated="GridView1_RowUpdated" style="margin-right: 0px" 
     PageSize="12">
   <Columns>
   <asp:TemplateField ShowHeader="False">
   <ItemTemplate>
  <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
   CommandName="Select" onclick="LinkButton1_Click" Text="Print"></asp:LinkButton>
   </ItemTemplate>
    </asp:TemplateField>
<asp:TemplateField ShowHeader="False">
  <ItemTemplate>
    <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="false" 
   CommandName="" onclick="LinkButton2_Click" Text="Work On"></asp:LinkButton>
  </ItemTemplate>
  <ControlStyle ForeColor="#0033CC" />
   </asp:TemplateField>
  <asp:BoundField DataField="WorkOrderNum" HeaderText="WorkOrderNum" 
   InsertVisible="False" ReadOnly="True" SortExpression="WorkOrderNum" >
    <HeaderStyle Width="10px" />
    </asp:BoundField>
  <asp:BoundField DataField="Requestor" HeaderText="Requestor" 
   SortExpression="Requestor" />
 <asp:BoundField DataField="Date" 
  HeaderText="Date" SortExpression="Date" dataformatstring="{0:MM/d/yyyy}" />
   <asp:BoundField DataField="Department" HeaderText="Department" 
   SortExpression="Department" />
   <asp:BoundField DataField="CompletionDate" 
    HeaderText="CompletionDate" SortExpression="CompletionDate"  dataformatstring="{0:MM/d/yyyy}"/>
   <asp:BoundField DataField="MachineDescription" HeaderText="MachineDescription" 
 SortExpression="MachineDescription" />
  <asp:BoundField DataField="MachineLocation" HeaderText="MachineLocation" 
   SortExpression="MachineLocation" />
  <asp:BoundField DataField="Type of Work Order" HeaderText="Type of Work Order" 
   SortExpression="Type of Work Order" />
 </Columns>
  </asp:GridView>

我的详细信息 view.aspx

<asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True"
AutoGenerateRows="False" DataKeyNames="WorkOrderNum" BackColor="#39B1CC"
DataSourceID="SqlDataSource2" DefaultMode="Insert" Height="175px"
Width="881px" Font-Bold="True" ForeColor="White" PostBack = "True"
oniteminserted="DetailsView1_ItemInserted">
<Fields>
<asp:TemplateField HeaderText="WorkPerformed / PartsUsed"
SortExpression="column1">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("column1") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("column1") %>' Height="29px" Width="699px"></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("column1") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Work Completed By " SortExpression="column2">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("column2") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("column2") %>' Height="29px" Width="699px"></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("column2") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Maint. Supv. Approval" SortExpression="column3">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("column3") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("column3") %>' Height="29px" Width="699px"></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("column3") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Q.C. Inspection By" SortExpression="column4">
<EditItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("column4") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox4" runat="server" Text='<%# Bind("column4") %>' Height="29px" Width="699px"></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("column4") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Work_Comp_Date" SortExpression="Work_Comp_Date">
<EditItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Work_Comp_Date") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox5" runat="server" Text='<%# Bind("Work_Comp_Date") %>' Height="29px" Width="699px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Work Comp Date Date Field Required" ControlToValidate = "TextBox5"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ErrorMessage="Date format in DD/MM/YYYY" ValidationExpression = "^(0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d$" ControlToValidate = "TextBox5"></asp:RegularExpressionValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label5" runat="server" Text='<%# Bind("Work_Comp_Date") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Supv_Approval_Date"
SortExpression="Supv_Approval_Date">
<EditItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"
Text='<%# Bind("Supv_Approval_Date") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox6" runat="server"
Text='<%# Bind("Supv_Approval_Date") %>' Height="29px" Width="699px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Supv.Approval Date Field Required" ControlToValidate = "TextBox6"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ErrorMessage="Date format in DD/MM/YYYY" ValidationExpression = "^(0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d$" ControlToValidate = "TextBox6"></asp:RegularExpressionValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label6" runat="server" Text='<%# Bind("Supv_Approval_Date") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Maint. Supv. Approval Date"
SortExpression="column5">
<EditItemTemplate>
<asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("column5") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>

<asp:TextBox ID="TextBox9" runat="server" Text='<%# Bind("column5") %>' Height="29px" Width="699px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ErrorMessage="Maint.Supv.Approval Date Field Required" ControlToValidate = "TextBox9"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server" ErrorMessage="Date format in DD/MM/YYYY" ValidationExpression = "^(0[1-9]|1[012])[-/.](0[1-9]|[12][0-9]|3[01])[-/.](19|20)\d\d$" ControlToValidate = "TextBox9"></asp:RegularExpressionValidator>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label9" runat="server" Text='<%# Bind("column5") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Safety_Inspected_By"
SortExpression="Safety_Inspected_By">
<EditItemTemplate>
<asp:TextBox ID="TextBox7" runat="server"
Text='<%# Bind("Safety_Inspected_By") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox7" runat="server"
Text='<%# Bind("Safety_Inspected_By") %>'  Height="29px" Width="699px" ></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label7" runat="server" Text='<%# Bind("Safety_Inspected_By") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Status" SortExpression="Status">
<EditItemTemplate>
<asp:TextBox ID="TextBox8" runat="server" Text='<%# Bind("Status") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" Height="29px" Width="699px" DataTextField="Status" DataValueField = "Status" SelectedValue='<%# Bind("Status") %>'>
<asp:ListItem>New</asp:ListItem>
<asp:ListItem>Complete</asp:ListItem>
<asp:ListItem>Denied</asp:ListItem>
<asp:ListItem>Cancel</asp:ListItem>
</asp:DropDownList>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label8" runat="server" Text='<%# Bind("Status") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<EditItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="True"
CommandName="Update" Text="Submit" />
&nbsp;<asp:Button ID="Button2" runat="server" CausesValidation="False"
CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="True"
CommandName="Insert" onclick="Button1_Click" Text="Submit" />
&nbsp;<asp:Button ID="Button2" runat="server" CausesValidation="False"
CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="False"
CommandName="Edit" Text="Edit" />
&nbsp;<asp:Button ID="Button2" runat="server" CausesValidation="False"
CommandName="New" Text="New" />
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>

截至目前我有 detailsview1.visible = false 我需要弹出窗口的原因是因为我的 gridview 占据了整个页面,我需要让主管填写详细信息视图也是。

我的网格视图图片

我的详细信息视图的图片

所以用户点击“Work On”,我希望它从 gridview 中获取 WorkOrderNum 作为参数,并在 EnterWorkOrderNumber 旁边的文本框中将其设置为相等,如果它可以将详细信息视图作为弹出窗口显示那将是真棒。真的很抱歉,我对 AJAX 没有任何经验,我在网上看了看,但是他们到处都在使用来自 gridview 外部的按钮,并没有太多帮助从 gridview 调用详细信息视图。

经过大量谷歌搜索后,我能够从面板内部弹出详细信息视图,但插入(提交)和取消按钮不起作用,并且面板也会在网格视图的中心我可以控制弹出位置,我讨厌这些控件被固定在一个地方,我希望能够将它放置在我在红色方块中标记的位置:(

完成弹出的额外代码

.aspx

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HTMLEditor" TagPrefix="cc1" %>

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="pnl1" PopupControlID="pnl1"></asp:ModalPopupExtender>

  <asp:HiddenField ID="HiddenField1" runat="server" />
 <asp:Panel ID="pnl1" runat="server" Width="881px" Height="175px">
<DetailsView1>
 </asp:Panel>

aspx.cs

protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
 {           
ImageButton imgbtn = (ImageButton)sender;
GridViewRow GridView1 = (GridViewRow)imgbtn.NamingContainer;
string workordernum = GridView1.Cells[3].Text;
TextBox10.Text = workordernum;
ModalPopupExtender1.Show();
DetailsView1.Visible = true;
}

【问题讨论】:

    标签: c# asp.net gridview modalpopupextender detailview


    【解决方案1】:

    您可以尝试使用 Ajax Control Toolkit。它有一个 ModalPopup 扩展,您可以尝试嵌入您的详细信息视图。您可以通过 javascript 代码或服务器端代码来操作模态窗口。

    http://ajaxcontroltoolkit.devexpress.com/ModalPopup/ModalPopup.aspx

    【讨论】:

    • 我尝试过并将代码添加到问题中,但是详细信息视图中的按钮没有触发,而且由于详细信息视图在面板内,我如何更改面板的位置?跨度>
    【解决方案2】:

    我终于弄清楚了为什么细节视图插入和取消事件没有在细节视图中触发,我所要做的就是改变 UseSumbitBehavior="False"

    <InsertItemTemplate>
    <asp:Button ID="Button1" runat="server" CausesValidation="False"
    CommandName="Insert" onclick="Button1_Click" Text="Submit" UseSubmitBehavior="False" />
    &nbsp;<asp:Button ID="Button2" runat="server" CausesValidation="False"
    CommandName="Cancel" Text="Cancel" OnClick="Button2_Click1" UseSubmitBehavior="False" />
    &nbsp;
    </InsertItemTemplate>
    

    至于将背景更改为黑色,我可以通过使用一些 CSS 来实现:

    <style>
    .modalBackground
    {
        background-color:Gray;
        filter:alpha(opacity=50);
        opacity:0.7;
    }
    .pnl1BackGround
    {
        background-color:White;
    
    }
    

    要更改弹出窗口的位置,我使用了 X 和 Y 坐标,X 水平移动,Y 垂直移动。

    希望这个答案可以帮助那里的人:) 快乐的编码人员

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多