通过单击一行网格来打开新网格. [英] Open new grid by clicking on a row of grid.

查看:63
本文介绍了通过单击一行网格来打开新网格.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在下面,您可以找到我的网格的代码,到目前为止,一切正常.现在,我想在RegionProjectname上添加Click事件,以便每当我单击Region项目名称行时,该列的RegionProjectID都存储在会话变量中,并且将基于所选行打开一个新的网格.请编辑或指导我如何执行此操作.

我已经在网格中添加了选择行",它也可以正常工作,但是我评论了

Below you can find the code of my grid and every thing is working fine up to here. Now i want to add Click event on RegionProjectname so that when ever i click on the the Region project name row, the RegionProjectID of that column is stored in a session variable and a new grid will open based on the selected row. Please edit or guide me that how i do this .

I had already added Select row in the grid and that also working fine but i commented

<asp:GridView ID="ResultGridView" runat="server" AutoGenerateColumns="False" ShowFooter="true" 

    DataKeyNames="RegionProjectID"  

    AllowPaging="True"  

    CellPadding="3"  

    OnPageIndexChanging="ResultGridView_PageIndexChanging"  

    OnRowDeleting="ResultGridView_RowDeleting"  

    CssClass="mGrid" 

    OnRowEditing="ResultGridView_RowEditing" OnRowUpdating="ResultGridView_RowUpdating" OnRowCancelingEdit="ResultGridView_RowCancelingEdit" PageSize="15" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellSpacing="2" OnRowCommand="ResultGridView_RowCommand" > 
        <Columns> 
            <asp:BoundField DataField="RegionProjectID" HeaderText="Region ID" InsertVisible="False" 

                ReadOnly="True" SortExpression="RegionProjectID" Visible="false" /> 
            <asp:TemplateField HeaderText="Region Name" SortExpression="RegionProjectName"> 
                <EditItemTemplate> 
                    <asp:TextBox ID="txtRegion" Width="250px" runat="server" Text='<%# Bind("RegionProjectName") %>'></asp:TextBox> 
                </EditItemTemplate> 
                <FooterTemplate> 
                <asp:TextBox ID="txtRegion1" runat="server"  Width="250px"></asp:TextBox>  
                </FooterTemplate> 
                <ItemTemplate> 
                    <asp:Label ID="Label1" runat="server" Text='<%# Bind("RegionProjectName") %>'></asp:Label> 
                </ItemTemplate> 
            </asp:TemplateField> 
 
            <asp:TemplateField HeaderText="Edit" ShowHeader="False">  
            <EditItemTemplate>  
              <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" CommandName="Update" Text="Update"></asp:LinkButton>  
              <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel" Text="Cancel"></asp:LinkButton>  
            </EditItemTemplate>  
            <FooterTemplate>  
              <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="AddNew" Text="Add New"></asp:LinkButton>  
            </FooterTemplate>  
            <ItemTemplate>  
              <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit" Text="Edit"></asp:LinkButton>  
            </ItemTemplate>  
            </asp:TemplateField>  
            <asp:CommandField HeaderText="Delete" ShowDeleteButton="True"  ShowHeader="True" />  
           <%-- <asp:CommandField HeaderText="Select" ShowSelectButton="True"  ShowHeader="True" on/> --%> 
 
        </Columns> 
        <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> 
        <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> 
        <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" /> 
        <%--<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />--%> 
        <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> 
    </asp:GridView>





private void FillVendorGrid() 
    { 
        dataTable = new DataTable(); 
        cmd.Connection = conn; 
        cmd.CommandText = "SELECT * FROM RegionAndProjectInfo where natureofWorkID= " + ddlnatureOfWork.SelectedValue.ToString(); ; 
        ad = new SqlDataAdapter(cmd); 
        ad.Fill(dataTable); 
        ResultGridView.DataSource = dataTable; 
        ResultGridView.DataBind(); 
    } 
 
    protected void ResultGridView_RowEditing(object sender, GridViewEditEventArgs e) 
    { 
        ResultGridView.EditIndex = e.NewEditIndex; 
        FillVendorGrid(); 
    } 
 
    protected void ResultGridView_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
        ResultGridView.PageIndex = e.NewPageIndex; 
        FillVendorGrid(); 
    } 
 
    protected void ResultGridView_RowDeleting(object sender, GridViewDeleteEventArgs e) 
    { 
        cmd.Connection = conn; 
        cmd.CommandText = "DELETE FROM RegionAndProjectInfo WHERE RegionProjectID='" + ResultGridView.DataKeys[e.RowIndex].Values[0].ToString() + "'"; 
        conn.Open(); 
        cmd.ExecuteNonQuery(); 
        conn.Close(); 
        FillVendorGrid(); 
 
    } 
 
    protected void ResultGridView_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
        TextBox txtRegionname = (TextBox)ResultGridView.Rows[e.RowIndex].FindControl("txtRegion"); 
        TextBox txtNatureOFWork = (TextBox)ResultGridView.Rows[e.RowIndex].FindControl("txtNatureOFWork"); 
        cmd.Connection = conn; 
        cmd.CommandText = "UPDATE RegionAndProjectInfo SET RegionProjectName ='" + txtRegionname.Text + "'   WHERE RegionProjectID='" + ResultGridView.DataKeys[e.RowIndex].Values[0].ToString() + "'"; 
        conn.Open(); 
        cmd.ExecuteNonQuery(); 
        ResultGridView.EditIndex = -1; 
        FillVendorGrid(); 
        conn.Close(); 
 
    } 
 
    protected void ResultGridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) 
    { 
        ResultGridView.EditIndex = -1; 
        FillVendorGrid(); 
 
    } 
 
    protected void ResultGridView_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
        if (e.CommandName.Equals("AddNew")) 
        { 
 
            TextBox txtRegion1 = (TextBox)ResultGridView.FooterRow.FindControl("txtRegion1"); 
            TextBox txtNatureOFWork1 = (TextBox)ResultGridView.FooterRow.FindControl("txtNatureOFWork1"); 
            if (txtRegion1.Text != "") 
            { 
                cmd.Connection = conn; 
                cmd.CommandText = "INSERT INTO RegionAndProjectInfo(RegionProjectName, NatureOFWorkID ) Values('" + txtRegion1.Text + "', '" + ddlnatureOfWork.SelectedValue.ToString() + "')"; 
                conn.Open(); 
                cmd.ExecuteNonQuery(); 
            } 
            FillVendorGrid(); 
            conn.Close(); 
        } 
    } 
 
    protected void ddlnatureOfWork_SelectedIndexChanged(object sender, EventArgs e) 
    { 
        FillVendorGrid(); 
    } 

推荐答案

添加一个新的模板"列,其名称为选择",
Add a new Template column named for "Select",
<asp:templatefield headertext="select" xmlns:asp="#unknown">
    <itemtemplate>
        <asp:imagebutton id="ImageButton4" runat="server" commandname="select" imageurl="images/hand.png" />
    </itemtemplate>
</asp:templatefield>



U可以使用链接按钮代替imagebutton.

双击此模板字段时,您将重定向到SelectedIndexChanged事件



U can use link button instead of imagebutton.

When double click on this template field, You will redirected to SelectedIndexChanged Event

protected void ResultGridView_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow gr = ResultGridView.SelectedRow;
    //Here You Write your code which saves you row id stored in a session variable //and a new grid will open based on the selected row.
}




如果您有任何问题,请告诉我;




if you get any problem, tell me;


这篇关于通过单击一行网格来打开新网格.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆