در این مقاله می خواهیم نمایش صحیح فرمول های شیمی را در کنترل DataGrid نشان دهیم . یعنی می خواهیم ببینیم که چگونه می توان فرمولی که در پایگاه داده به شکل CO2 ذخیره شده است را به شکل واقعی آن در فرم وب نمایش داد.
همان طور که می دانید در HTML برای اندیس گذاری از <sub>subscript</sub> استفاده می گردد . در این مقاله با چند خط کد کاری می کنیم که این فرمت به صورت اتوماتیک بر روی داده هایی که از پایگاه داده خوانده می شوند و قصد نمایش آنها را در صفحه وب داریم اعمال شود .
داده ها در پایگاه داده به شکل زیر ذخیره شده اند:

حال برای نمایش این داده ها در کنترل وب DataGrid ، ابتدا یک کنترل DataGrid را بر روی فرم وب قرار دهید .
|
<asp:DataGrid id=“DataGrid1″ AutogenerateColumns=“false” runat=“server”>
<Columns>
<asp:TemplateColumn HeaderText=“Chemical Formula”>
<ItemTemplate>
<font face=“Arial” size=“3″>
<b> <%# GetProperFormat(DataBinder.Eval(Container.DataItem, “Formula”).ToString()) %></b>
</font>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid> |
حال قطعه کد زیر را در صفحه CodeBehind این فرم بنویسید .
C#
|
private void Page_Load(object sender, System.EventArgs e)
{
// Put user code to initialize the page here
if (!Page.IsPostBack )
{
BindData ();
}
}
DataSet ds = new DataSet ();
void BindData()
{
string sqlStmt = “Select * from ChemicalFormula “;
string conString = “server=localhost;database=Northwind;uid=sa;pwd=;”;
SqlDataAdapter myda = new SqlDataAdapter(sqlStmt, conString);
myda.Fill(ds);
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
}
protected string GetProperFormat(string fldval)
{
string strval = “”;
// Navigate through every character of the fldval
for (int i = 0; i < fldval.Length ; i++)
{
// Check for IF the value is numeric True/False
if (Char.IsNumber(fldval[i]))
{
strval = strval + “<sub>” + fldval[i] + “</sub>”;
}
else
{
strval = strval + fldval[i];
}
}
return strval;
} |
VB.NET
|
Private ds As DataSet = New DataSet()
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load
‘Put user code to initialize the page here
If Not Page.IsPostBack Then
binddata()
End If
End Sub
Sub binddata()
Dim sqlStmt As String = “Select * from ChemicalFormula ”
Dim conString As String = “server=localhost;database=Northwind;uid=sa;pwd=;”
Dim myda As SqlDataAdapter = New SqlDataAdapter(sqlStmt, conString)
myda.Fill(ds)
DataGrid1.DataSource = ds
DataGrid1.DataBind()
End Sub
Function GetProperFormat(ByVal fldval As String)
Dim FieldsValues() As String = Regex.Split(fldval, “”)
Dim i As Integer
Dim strval As String
‘Navigate through every character of the FieldValue
For i = 0 To FieldsValues.Length – 1
‘Check for IF the value is numeric True/False
If IsNumeric(FieldsValues(i)) Then
strval = strval & “<sub>” & FieldsValues(i) & “</sub>”
Else
strval = strval & FieldsValues(i)
End If
Next
Return strval
End Function |
متد BindData : از این متد برای دستکاری دیتاست و نسبت دادن مقادیر به کنترل مربوطه استفاده شده است .
متد GetProperFormat : از این متد برای نمایش صحیح فرمول استفاده می شود .
در نهایت خروجی که این برنامه ایجاد خواهد کرد به شکل زیر خواهد بود .
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن