如何选择在文本框中输入索引网格视图行 [英] how select grid view row by entering index in a text box

查看:107
本文介绍了如何选择在文本框中输入索引网格视图行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在C#asp.net web应用程序。它包含了网格视图,文本框和一个button.what我想工作是,当我在文本框中输入1,然后输入按钮,然后自动选择第一行,并指示到另一个其中包含所选行的详情页
在我的code,可以通过点击鼠标使用的超级链接重定向到下一页......但它不是我的要求。
这里是我的code

 < ASP:文本框ID =txtindex=服务器>< / ASP:文本框>
    &安培; NBSP;< ASP:按钮的ID =Button1的=服务器FONT-粗体=真HEIGHT =39px
        的onclick =的button1_Click文本=走出去WIDTH =53px/>
    < BR />
    < BR />
    < ASP:GridView控件ID =GridView1=服务器的AutoGenerateColumns =FALSE
        的DataKeyNames =ACNO的DataSourceID =SqlDataSource1>
        <柱体和GT;
            < ASP:BoundField的数据字段=ACNO的HeaderText =ACNOInsertVisible =FALSE
                只读=真SORTEX pression =ACNO/>
            < ASP:HyperLinkField字段DataNavigateUrlFields =ACNO的HeaderText =用户名
           DataNavigateUrlFormatString =?〜/ details.aspx ACNO = {0}目标=_空白DatatextField =用户名SORTEX pression =用户名/>
            < ASP:BoundField的数据字段=RDATE的HeaderText =RDATESORTEX pression =RDATE/>
        < /专栏>
    < / ASP:GridView的>
    < BR />
    < ASP:SqlDataSource的ID =SqlDataSource1=服务器
        的ConnectionString =下;%$的ConnectionStrings:postofficeConnectionString%>中
        的SelectCommand =SELECT [ACNO],[用户名],[RDATE] FROM [客户]>
    < / ASP:SqlDataSource的>

Default.aspx.cs

 保护无效的button1_Click(对象发件人,EventArgs的发送)
{
    GridView1.SelectedIndex = int.Parse(txtindex.Text);
    INT援助= Convert.ToInt32(GridView1.DataKeys [GridView1.SelectedIndex] .Values​​ [0]);    的Response.Redirect(details.aspx ACNO {0}?);
}

details.aspx.cs

`

 保护无效的Page_Load(对象发件人,EventArgs的发送)
    {
        INT ID = int.Parse(的Request.QueryString [ACNO]);
        con.Open();
        CMD的SqlCommand =新的SqlCommand(选择ACNO,用户名,州,区,FNAME,从客户那里LNAME ACNO ='+身份证+',CON);
        SqlDataReader的博士;
        博士= cmd.ExecuteReader();
        而(dr.Read())
        {
            Label1.Text =博士[0]的ToString();
            Label2.Text =博士[1]的ToString();
            Label3.Text =博士[2]的ToString();
            Label4.Text =博士[3]的ToString();
            Label5.Text =博士[4]的ToString();
            Label6.Text =博士[5]的ToString();
        }        con.Close();
 }


解决方案

  INT指数= int.Parse(txtindex.Text);
INT援助= Convert.ToInt32(GridView1.DataKeys [指数] .Value.ToString());的Response.Redirect(的String.Format(details.aspx ACNO = {0}?,援助));

和你最好使用 int.TryParse 来检查用户输入

  INT指数,援助;
如果(int.TryParse(txtindex.Text,出指数)及和放大器;
    int.TryParse((GridView1.DataKeys [指数] .Value.ToString()),出援助))
{
    的Response.Redirect(的String.Format(details.aspx ACNO = {0}?,援助));
}

I am working on C# asp.net web application .it contains a Grid view,text box and a button.what i want is when i type 1 in text box and enter button then automatically select the first row and directed to another page which contains more details of the selected row in my code it is possible to redirect to next page by clicking the hyperlink using mouse...but it's not my requirement. here is my code

    <asp:TextBox ID="txtindex" runat="server"></asp:TextBox>
    &nbsp;<asp:Button ID="Button1" runat="server" Font-Bold="True" Height="39px" 
        onclick="Button1_Click" Text="go" Width="53px" />
    <br />
    <br />
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="acno" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="acno" HeaderText="acno" InsertVisible="False" 
                ReadOnly="True" SortExpression="acno" />
            <asp:HyperLinkField DataNavigateUrlFields="acno"  HeaderText="username"     
           DataNavigateUrlFormatString="~/details.aspx?acno={0}" Target="_blank"                 DatatextField="username"     SortExpression="username" />
            <asp:BoundField DataField="rdate" HeaderText="rdate" SortExpression="rdate" />
        </Columns>
    </asp:GridView>
    <br />
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:postofficeConnectionString %>" 
        SelectCommand="SELECT [acno], [username], [rdate] FROM [customer]">
    </asp:SqlDataSource>

Default.aspx.cs

 protected void Button1_Click(object sender, EventArgs e)
{
    GridView1.SelectedIndex = int.Parse(txtindex.Text);
    int aid = Convert.ToInt32(GridView1.DataKeys[GridView1.SelectedIndex].Values[0]);

    Response.Redirect("details.aspx?acno{0}");
}

details.aspx.cs

`

protected void Page_Load(object sender, EventArgs e)
    {
        int id =int.Parse( Request.QueryString["acno"]);
        con.Open();
        SqlCommand cmd=new SqlCommand("select acno,username,states,district,fname,lname from customer where acno='"+id+"'",con);
        SqlDataReader dr;
        dr=cmd.ExecuteReader();
        while(dr.Read())
        {
            Label1.Text=dr[0].ToString();
            Label2.Text=dr[1].ToString();
            Label3.Text=dr[2].ToString();
            Label4.Text=dr[3].ToString();
            Label5.Text=dr[4].ToString();
            Label6.Text=dr[5].ToString();
        }

        con.Close();
 }

解决方案

int index = int.Parse(txtindex.Text);
int aid = Convert.ToInt32(GridView1.DataKeys[index].Value.ToString());

Response.Redirect(string.Format("details.aspx?acno={0}", aid));

And you better use int.TryParse to check user input

int index,aid;
if (int.TryParse(txtindex.Text, out index) && 
    int.TryParse((GridView1.DataKeys[index].Value.ToString()) , out aid))
{
    Response.Redirect(string.Format("details.aspx?acno={0}", aid));
}

这篇关于如何选择在文本框中输入索引网格视图行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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