0

空のテキスト ボックスをチェックし、RowEditing イベントで null の場合はテキストをボックスに変更したいだけです。私はこれを理解することはできません。もちろん、グリッドにデータが入力されると、一部のボックスは空になります。もう 1 つの質問は、これを適切なイベントに配置しているかどうかです。

行編集イベントは次のとおりです。

protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{        
    fill_grid();

    //Set the edit index.
    GridView1.EditIndex = e.NewEditIndex;
    //Bind data to the GridView control.
    check_grid_boxes();
    GridView1.DataBind();
}

check_grid_boxes メソッドは次のとおりです。

protected void check_grid_boxes()
{
    if (gtxtLane.Text == "")
    {
        gtxtLane.Text = "0";
    }
    else if (gtxtCarriers.Text == "")
    {
        gtxtCarriers.Text = "0";
    }
    else if (gtxtREV.Text == "")
    { 
        gtxtREV.Text = "0";
    }
    return;
}

Java Script または Jquery について言及する前に。これは Web コントロールであり、Java を使用しようとしてもうまくいきませんでした。

コードを次のように変更しました。

  protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            fill_grid();
            GridView1.EditIndex = e.NewEditIndex;

            var lane = (TextBox)GridView1.Rows[e.NewEditIndex].FindControl("gtxtLane");
            var car = (TextBox)GridView1.Rows[e.NewEditIndex].FindControl("gtxtCarriers");
            var badcar = (TextBox)GridView1.Rows[e.NewEditIndex].FindControl("gtxtBadCarriers");

            if (String.IsNullOrEmpty(lane.Text))
            {
                lane.Text = "0";
            }
            else if (String.IsNullOrEmpty(badcar.Text))
            {
                badcar.Text = "0";
            }
            else if (String.IsNullOrEmpty(car.Text))
            {
                car.Text = "0";
            }
               GridView1.DataBind();
         }
4

4 に答える 4

1

ああ!!!! どうやって --> isnull(lane,'0') を Lane <--- として選択します。私はそれを考えていなかったなんて信じられない!! 6時間無駄!!

于 2012-10-18T20:30:07.647 に答える
1

次のように編集されている行内にある TextBoxes への参照を取得する必要があります。

GridView1.EditIndex = e.NewEditIndex;

TextBox gtxtLane = (TextBox)GridView1.Rows[e.NewEditIndex].FindControl("gtxtLane");
于 2012-10-18T16:49:04.427 に答える
0

グリッドビューの nulldisplaytext プロパティを使用できます

<asp:boundfield datafield="discounttype"
            nulldisplaytext="0"
            headertext="Discount Type"/>
于 2012-10-18T16:50:18.707 に答える
0

gtxtLane参照の問題が発生していると思います。コンパイラはどこから取得すればよいのか、残りはどこから取得すればよいのかわからないためです。グリッドの各行にはこれらのコントロールの独自のバージョンがあるため、それらを直接参照する必要があることに注意してください。FindControl行オブジェクトで使用できます。から行オブジェクトの参照を取得できますGridViewEditEventArgs。コードは次のようになります (eを参照GridViewEditEventArgs)

var gtxtLane = (TextBox)GridView1.Rows[e.NewEditIndex].FindControl("gtxtLane");
if (gtxtLane.Text == "")
{
    gtxtLane.Text = "0";
}

e.NewEditIndex編集中の行のインデックスを取得し、それを使用してグリッドビューから行オブジェクトを取得し、必要なコントロールを見つけて にキャストしてからTextBox使用します。すすいで繰り返します。

于 2012-10-18T16:53:31.887 に答える