( تعداد نمایش : 2051 )

نمایش صحیح فرمول های شیمی در DataGrid

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

untitled1 نمايش صحيح فرمول هاي شيمي در DataGrid

حال برای نمایش این داده ها در کنترل وب 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 : از این متد برای نمایش صحیح فرمول استفاده می شود .
در نهایت خروجی که این برنامه ایجاد خواهد کرد به شکل زیر خواهد بود .

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن