私は、GridView
その上SelectedIndexChanged
でコードが起動されます:
protected void grdEntry_SelectedIndexChanged(object sender, EventArgs e)
{
lblAssignId.Text = grdEntry.SelectedRow.Cells[1].Text == " "
? ""
: grdEntry.SelectedRow.Cells[1].Text;
Ob.BranchId = Globals.BranchID;
Ob.AssignId = lblAssignId.Text;
DataSet dsMain = GetAssignDetails(Ob);
if (dsMain.Tables[0].Rows.Count != 0)
{
// some other code
Task.Factory.StartNew(() => FillMemberShipAndBarCode(dsMain.Tables[0].Rows[0]["CustomerCode"].ToString(), Ob.BranchId));
}
}
メンバーシップ ID を入力するためのコードは次のとおりです。
private void FillMemberShipAndBarCode(string customerCode, string branchId)
{
var sqlCommand = new SqlCommand
{
CommandText = "sp_customermaster",
CommandType = CommandType.StoredProcedure
};
sqlCommand.Parameters.AddWithValue("@CustomerCode", customerCode);
sqlCommand.Parameters.AddWithValue("@BranchId", branchId);
sqlCommand.Parameters.AddWithValue("@Flag", 18);
var data = PrjClass.GetData(sqlCommand);
txtMemberShip.Text = data.Tables[0].Rows[0]["MembershipId"].ToString();
txtBarCode.Text = data.Tables[0].Rows[0]["Barcode"].ToString();
}
正常に動作していますが、テキストボックスを更新していません。また、ウォッチウィンドウでチェックしたところ、期待どおりに値が返され(M-1213
および634-98-4
)、コードはポイントに到達しましたtxtMemberShip.Text = data.Tables[0].Rows[0]["MembershipId"].ToString();
が、txtMemberShip
空のままです??? テキストボックスを更新しない理由を誰か教えてもらえますか?
アップデート
コメントによると、これがページの読み込みです
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindDropDown();
BindGrid();
SetDefaultsInTextBoxes();
}
}
そして、このタスクを待機するコードはありません。